まとめVBAで名前の定義を設定する方法VBAで名前の定義を設定する方法は、大きく分けて以下の2つがあります。・シートレベルで名前の定義を設定それぞれ詳しく解説する前に、簡単に「ブックレベル・シートレベルの名前の定義の違い」について解説しますね。ブックレベル・シートレベルの名前の定義の違いブックレベル・シートレベルと聞くと少し難しく感じるかもしれませんが、簡単に言うと次のような違いがあります。・ブックレベル:シート名の指定なしでどこからでも使える・シートレベル:シート名の指定をしなければ使えない変数でいうところのPublic、Privateなどのスコープの違いに似ているかもしれませんね。ブックレベルはどこからでもつかえるので使いやすい分、意図しない場所で書き換えられてしまうリスクもあるので、その点を踏まえたうえで使いやすい方を使うのがおすすめです!では次に、具体的な設定方法について解説します。ブックレベルで名前の定義を設定する方法まず、「ブックレベルで名前の定義を設定する方法」についてです。Nameプロパティを使うことで、ブックレベルで名前の定義を付けることができます。使い方は次のとおりです。"名前の定義に設定する名前"たとえば、次のように名前の定義を設定することができます。Sub設定した名前の定義の場所:このように、簡単に範囲を指定して名前の定義を設定することができます。次に、「シートレベルで名前の定義を設定する方法」についてです。NamesコレクションのAddメソッドを使えば、ブックシートレベル・シートレベルのどちらかを指定して、名前の定義を設定することができます。使い方は次のとおりです。MacroType]各プロパティの使い方を簡単に一覧でまとめました。名前を表示/非表示をTrue/Falseで指定。マクロの種類を以下から指定。1:Functionプロシージャ2:Subプロシージャ3:なし(定義した名前がFunction、Subを参照しない)たとえば、次のようにシートレベルで名前の定義を設定することができます。Sub設定した名前の定義の場所:このように、簡単に範囲を指定して名前の定義を設定することができます。ブックレベル・シートレベルを使い分けることができるので、便利ですね。次に、VBAで設定した名前の定義を使う方法について解説します。わかりやすく解説するために、さきほど用意した名前の定義を設定するサンプルコードを使って、それぞれ解説します。ブックレベルの名前の定義を使用する方法まず、「ブックレベルの名前の定義を使う方法」についてです。以下のようにRangeメソッドの範囲に直接「名前の定義で設定した名前」を使って処理を書くだけなので、とても簡単です。Sub設定した名前の定義の場所:こちらは、設定した名前の定義の範囲に「1」を書き込むサンプルです。このように、簡単に名前の定義を使って処理を書くことができます。シートレベルの名前の定義を使用する場合シートレベルの名前の定義を使うためには、シート名を指定してから「名前の定義で設定した名前」を指定しないといけません。「Worksheets("シート名").Range("名前の定義で設定した名前").メソッド」のように書くことで、名前の定義を使った処理を書くことができます。Sub設定した名前の定義の場所:ちなみに、シート名を指定せずにRangeメソッドを使った場合は「Activesheet」がRangeメソッドの前に暗黙的に指定されるため、名前の定義を設定したシートであれば、「Range("名前の定義で設定した名前").メソッド」でもエラーにはなりません。別のシートで処理を実行した場合は、次のようにエラーメッセージが出てしまいます。最後に、VBAで設定した名前の定義を削除する方法について解説します。ブックレベル・シートレベルどちらも、NamesコレクションのItemメソッドを使って削除します。使い方は次のとおりです。NamesコレクションのItemメソッドの使い方:'ブックレベルの名前の定義を削除Application.Names.Item("名前の定義に設定した名前").Delete'シートレベルの名前の定義を削除ActiveSheet.Names.Item("名前の定義に設定した名前").DeleteApplicationを先頭のオブジェクトに指定した場合はブックレベル、ActiveSheetまたはWorksheets("シート名")を指定した場合はシートレベルになるわけです。次のように設定した名前の定義を削除することができます。Sub削除後の名前の定義:このように、簡単に作成した名前の定義を削除することができます。まとめ今回は、VBAで名前の定義を設定・使用・削除する方法について解説しました。名前の定義を使いこなすと、変更に強いVBAの処理を作ることができるので、覚えておくと便利です。使い方も簡単なので、ぜひ使ってみてくださいね!TweetPocket無料でSEからWebエンジニアへ転職しませんか?侍エンジニア塾では、完全未経験の方から現在SEだけどプログラミングはやっていないという経験者まで、幅広い方々の人生を好転させるプログラミング指導を行ってきました。SEの方とお話していくなかで、システムエンジニアという職業だけどコードが書けない事務作業が多くスキルがないため将来が不安スクールに通うと完全未経験者と同じスタートになるからレベルが合わないという、すでに知識があるSEならではのお悩みがあることに気づきました。弊社では、マンツーマンでレッスンを行いますので、現在お持ちの知識レベルからカリキュラムを作成いたします。こちらの転職コースは無料で受講を始められて転職成功でそのまま卒業できるというとてもお得なコースとなっています。知識のあるSEといっても転職は年齢が若いほど受かりやすいため、まずは無料体験レッスンで今の現状や理想の働き方について一緒に考えていきましょう。Wakizaka新卒入社したメーカー系のIT企業で、システムエンジニアとして約5年勤務。インフラ、製造、テスト、運用保守など、様々な経験あり。侍ブログ編集部として、これまでに200記事以上の記事を執筆。現在はフリーランスエンジニア兼テックライターとして活動中。