大体でIT
大体でIT
Excel VBAで、名前の定義を設定する方法について、ご紹介します。VBAで名前の定義を設定できると、時短になりますし、ミスも減ります。VBAを使って、名前を参照するのも簡単なので、「名前の定義」はどんどん使っていきましょう。
この記事では、名前の定義を設定する方法について、ご紹介します。
名前の定義は、手動で設定するより、VBAで設定した方が楽です。
特に設定する名前が多い場合は、VBAを使うと、時短になります。
VBAで名前の定義を参照することも簡単なので、「名前の定義」をどんどん使っていきましょう。
では、名前の定義を設定する方法について、解説していきます。
- 名前の定義を設定する方法
- 名前の定義を参照する方法
名前の定義を、Excelで設定する方法をご紹介します。
名前の定義は、「ブック単位」と「シート単位」の設定があります。
「ブック単位」で名前の定義を設定すると、その名前は、ブック内で一つだけになります。
「シート単位」だと、シート内の名前になりますので、他のシートで同じ名前を使うことができます。
名前の定義がされているシートをコピーすると、コピー先の名前は、「シート単位」の設定となります。
やり方は、上の方の枠に好きな名前を入力するだけです。
「ブック単位」で名前の定義をする
「ブック単位」で名前の定義をした結果
名前の管理をクリック
まず、タブの「数式」から「名前の管理」をクリックします。
名前の管理が表示される
新しい名前の画面
範囲からSheet1を選択
名前と参照範囲を入力
「シート単位」で名前の定義ができる
名前の定義の使い方は、数式「=」で参照してあげるか、直接、名前を入力するかで、できます。
ブック単位
ブック単位で設定した名前の定義を、参照してみます。
「=名前1」という感じで、定義した名前だけが表示されます。
シート単位
次に、シート単位で設定した名前の定義を、参照してみます。
シート単位の場合は、「=Sheet1!名前1」というように、シート名まで表示されています。
こんな感じで、エクセルでは、名前の定義と参照ができます。
手動で、名前の定義をすると、結構、面倒くさいですよね。
次は、VBAで「名前の定義」を設定する方法を、ご紹介します。
まずは、一つのセルに名前の定義を、設定する方法です。
Sub TEST1()
'ブック単位で「名前の定義」を設定する
ActiveSheet.Range("A1").Name = "名前1"
End Sub
セルA1に、「名前1」という名前の定義をしています。
一つのセルに名前の定義を設定
セルA1に、「名前1」という名前を定義することができました。
Sub TEST2()
'セル範囲に「名前の定義」を設定する
ActiveSheet.Range("A1:C3").Name = "名前1"
End Sub
セル範囲に名前の定義を設定
「セル範囲」に名前の定義を、設定することができました。
次は、シート単位で、名前の定義を設定する方法です。
ワークシート「Sheet1」で「名前1」という名前を定義してみます。
Sub TEST3()
'シート単位で「名前の定義」を設定する
Worksheets("Sheet1").Range("A1").Name = "Sheet1!名前1"
End Sub
シート単位で名前の定義を設定
見た目がブック単位と同じなので、わかりづらいです。
シート単位で設定されているか確認
ちゃんとシート単位で、名前の定義が設定されていることがわかります。
こんな感じで、VBAを使えば、簡単に名前を定義することができます。
Sub TEST4()
'ブック単位の名前を参照する
ActiveSheet.Cells(1, 1) = Range("名前1")
End Sub
「名前1」を定義しておく
「名前1」を参照
次は、名前が「セル範囲」に定義されている場合です。
セル範囲の場合も、VBAコードは同じで、次のように入力します。
Sub TEST5()
'セル範囲で定義された名前を参照する
a = Range("名前1")
End Sub
あらかじめ、セル範囲を「名前1」として、定義しておきました。
セル範囲を「名前1」で定義しておく
セル範囲に定義した名前を参照
配列に「名前1」のセル範囲を、格納することができました。
シート単位で名前の定義をした名前を、参照する方法です。
ポイントは、Rangeの前に、「Worksheets(シート名).Range(名前)」というように、シート名まで記載することです。
Sub TEST6()
'シート単位で設定された名前を参照する
ActiveSheet.Cells(1, 1) = Worksheets("Sheet1").Range("名前1")
End Sub
ワークシート「Sheet1」に「名前1」という名前を「シート単位」で定義しておきました。
Sheet1にシート単位で「名前1」を定義しておく
シート単位の名前を参照
実務で、名前の定義を設定する場合を考えてみました。
実務で名前の定義をする場合は、セルに入力された名前を使って、名前の定義する方が簡単です。
セルにあらかじめ、名前の定義で設定する、名前を入力していきました。
セルに定義したい名前を入力しておく
Sub TEST7()
With ActiveSheet
For i = 1 To 10
'「名前の定義」を設定する
.Cells(i, 2).Name = .Cells(i, 1)
Next
End With
End Sub
名前の定義をした結果
「名前1」~「名前10」まで、名前の定義を設定することができました。
こんな感じで、セルにあらかじめ名前を入力してから、名前の定義をすると簡単に設定できます。
この記事では、名前の定義を設定する方法について、ご紹介しました。
名前の定義を、VBAで設定するとかなり楽になります。
VBAで、名前の定義を参照することも簡単なので、「名前の定義」をどんどん使っていきましょう。
参考になればと思います。最後までご覧くださいまして、ありがとうございました。