記事キャッチ画像  (39) 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] キーを押す必要あり)

17


'----------------------------------------
'    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でもセルやセル範囲に名前を付けたり、付けた名前を削除可能 

50

「名前の定義」にて、セルやセル範囲に名前を付けることができる
今回は、VBAでの操作方法を説明する。

19

Range.Name = "定義名" にて、セルやセル範囲に「名前の定義」が可能。(追加あるいは修正となる)

定義名はブック毎に「 Workbook.Names あるいは Application.Names 」コレクションとして管理されているため、コレクション参照が可能だ。
サンプルコードのとおり、定義名が Name 、セル(範囲)が RefersTo でプロパティ参照できる。

また、 Workbook.Names("定義名").Delete にて、「名前の定義」の削除が可能
Space(n) は、英数字の空白を n 文字分繰り返すVB関数。
Range.BorderAround は、先日説明したとおり外枠罫線を引くメソッド。


 2. 定義した(付けた)名前は、もちろん数式内で利用可 

04

Range("A11").Formula = "=AVERAGE(Region1)"
Range("C11").Formula = "=AVERAGE(FirstCell:LastCell)"

Excel と VBA から、同じ「定義名」が利用でき、「数式」内で利用するとセル参照範囲が理解しやすくて便利


次回も、セル参照に関して 説明します


お疲れ様でした!
[command] + [Q] にてExcel を終了時、「作業中のブック」を保存するか確認のダイアログ画面が表示されるため 「保存」しましょう。

現状、 VBE 内で日本語を記述すると(貼り付けのみ可能な場合あり)乱れたり、保存時にクラッシュすることが多いため、 VBAコード は「未変換の英数字のみ」で記述してください。(テキストエディタからの貼り付けは可能)




最後まで読んでいただき、ありがとうございます。
ぜひ、右側の「人気ブログランキング」投票に ご協力ください。
また、お越しくださいませ。
// アタル

  「広告」