(39) VBAでも「セルに名前を定義する」ことができる!
1. VBAでもセルやセル範囲に名前を付けたり、付けた名前を削除可能
2. 定義した(付けた)名前は、もちろん数式内で利用可
Excel メニューバーの [ヘルプ] - [更新プログラムのチェック] にて、適用されていないアップデートがあれば行ってください。
Excel 2016 for Mac 環境での説明となりますので、 Mac版 Excel 2011 では( VBA が利用できますが )同じ結果にならない場合があるかもしれません。
現状、 VBE 内で日本語を記述すると(貼り付けのみ可能な場合あり)乱れたり、保存時にクラッシュすることが多いため、 VBAコード は「未変換の英数字のみ」で記述してください。(テキストエディタからの貼り付けは可能)
前回使用した XLSM ファイルを、「マクロを有効」にして開きます。
今回も、「Sheet4」を用います。(VBAコードは、 Module1 の末尾に追加)
実行は、イミディエイトウィンドウにて
call Test_Range_Name()
( [return] キーを押す必要あり)
「名前の定義」にて、セルやセル範囲に名前を付けることができる。
今回は、VBAでの操作方法を説明する。
Range.Name = "定義名" にて、セルやセル範囲に「名前の定義」が可能。(追加あるいは修正となる)
定義名はブック毎に「 Workbook.Names あるいは Application.Names 」コレクションとして管理されているため、コレクション参照が可能だ。
サンプルコードのとおり、定義名が Name 、セル(範囲)が RefersTo でプロパティ参照できる。
また、 Workbook.Names("定義名").Delete にて、「名前の定義」の削除が可能。
Space(n) は、英数字の空白を n 文字分繰り返すVB関数。
Range.BorderAround は、先日説明したとおり外枠罫線を引くメソッド。
Range("A11").Formula = "=AVERAGE(Region1)"
Range("C11").Formula = "=AVERAGE(FirstCell:LastCell)"
Excel と VBA から、同じ「定義名」が利用でき、「数式」内で利用するとセル参照範囲が理解しやすくて便利。
お疲れ様でした!
[command] + [Q] にてExcel を終了時、「作業中のブック」を保存するか確認のダイアログ画面が表示されるため 「保存」しましょう。
現状、 VBE 内で日本語を記述すると(貼り付けのみ可能な場合あり)乱れたり、保存時にクラッシュすることが多いため、 VBAコード は「未変換の英数字のみ」で記述してください。(テキストエディタからの貼り付けは可能)
最後まで読んでいただき、ありがとうございます。
ぜひ、右側の「人気ブログランキング」投票に ご協力ください。
また、お越しくださいませ。
// アタル
1. VBAでもセルやセル範囲に名前を付けたり、付けた名前を削除可能
2. 定義した(付けた)名前は、もちろん数式内で利用可
「広告」
(39) VBAでも「セルに名前を定義する」ことができる!
Excel メニューバーの [ヘルプ] - [更新プログラムのチェック] にて、適用されていないアップデートがあれば行ってください。
Excel 2016 for Mac 環境での説明となりますので、 Mac版 Excel 2011 では( VBA が利用できますが )同じ結果にならない場合があるかもしれません。
現状、 VBE 内で日本語を記述すると(貼り付けのみ可能な場合あり)乱れたり、保存時にクラッシュすることが多いため、 VBAコード は「未変換の英数字のみ」で記述してください。(テキストエディタからの貼り付けは可能)
前回使用した XLSM ファイルを、「マクロを有効」にして開きます。
今回も、「Sheet4」を用います。(VBAコードは、 Module1 の末尾に追加)
実行は、イミディエイトウィンドウにて
call Test_Range_Name()
( [return] キーを押す必要あり)
'---------------------------------------- ' Test_Range_Name() '---------------------------------------- Public Sub Test_Range_Name() Dim obj As Object With Worksheets("Sheet4") .Range("C4:E9").Name = "Region1"
.Range("E13:G18").Name = "Region2".Range("E13").Name = "FirstCell"
.Range("G18").Name = "LastCell"End With For Each obj In ActiveWorkbook.Names Debug.Print obj.Name & Space(3) & obj.RefersTo Next obj With Worksheets("Sheet4") .Range("Region1").BorderAround LineStyle:=xlContinuous, _ ColorIndex:=3, Weight:=xlMedium .Range("Region2").BorderAround LineStyle:=xlContinuous, _ ColorIndex:=3, Weight:=xlMedium .Range("A11").Formula = "=AVERAGE(Region1)" .Range("B11").Formula = "=AVERAGE(Region2)" .Range("C11").Formula = "=AVERAGE(FirstCell
:LastCell)" End With End Sub
1. VBAでもセルやセル範囲に名前を付けたり、付けた名前を削除可能
「名前の定義」にて、セルやセル範囲に名前を付けることができる。
今回は、VBAでの操作方法を説明する。
Range.Name = "定義名" にて、セルやセル範囲に「名前の定義」が可能。(追加あるいは修正となる)
定義名はブック毎に「 Workbook.Names あるいは Application.Names 」コレクションとして管理されているため、コレクション参照が可能だ。
サンプルコードのとおり、定義名が Name 、セル(範囲)が RefersTo でプロパティ参照できる。
また、 Workbook.Names("定義名").Delete にて、「名前の定義」の削除が可能。
Space(n) は、英数字の空白を n 文字分繰り返すVB関数。
Range.BorderAround は、先日説明したとおり外枠罫線を引くメソッド。
2. 定義した(付けた)名前は、もちろん数式内で利用可
Range("A11").Formula = "=AVERAGE(Region1)"
Range("C11").Formula = "=AVERAGE(FirstCell:LastCell)"
Excel と VBA から、同じ「定義名」が利用でき、「数式」内で利用するとセル参照範囲が理解しやすくて便利。
次回も、セル参照に関して 説明します!
お疲れ様でした!
[command] + [Q] にてExcel を終了時、「作業中のブック」を保存するか確認のダイアログ画面が表示されるため 「保存」しましょう。
現状、 VBE 内で日本語を記述すると(貼り付けのみ可能な場合あり)乱れたり、保存時にクラッシュすることが多いため、 VBAコード は「未変換の英数字のみ」で記述してください。(テキストエディタからの貼り付けは可能)
「広告」
最後まで読んでいただき、ありがとうございます。
ぜひ、右側の「人気ブログランキング」投票に ご協力ください。
また、お越しくださいませ。
// アタル
「広告」
コメント