サンプル画像
Excelマクロ塾メニュー

エクセルマクロ・VBAは慣れが肝心
最初は難しく感じるExcelのマクロとVBAですが、仕組みが理解できると徐々に使いこなせるようになってきます!
自分のペースで着実に勉強しましょう!

エクセルマクロ塾
エクセルマクロ塾

変数のスコープ

変数のスコープとは変数の適用範囲を表します。

適用範囲とは(○○の場所で宣言をした変数は△△の範囲では宣言できない)など、具体的にはその変数がどこで使えるかということを表します。

 

変数の適用範囲(どこでそれぞれの変数を使うことができるか)を知るためにはVBAの中にはどのような場所(モジュールといいます)があるのかをまず覚える必要があります。

 

モジュールの種類と説明

VBAには色分けした4つのモジュールが存在します。

1つ1つ説明していきます。

 

VBA 変数のスコープ

 

シートモジュール

赤線で囲まれた範囲をシートモジュールと言います。シートモジュールは初期設定の状態(エクセルを開いて何も変更していない状態)では[ Sheet1 ]のモジュールは一番上にある[ Sheet1(Sheet1) ]になります。

 

VBA 変数のスコープ

 

しかし上の画像にあるようにエクセルのシート画面で[ シートの見出し ]から[ 名前の変更 ]を行っていた場合、シートモジュールに表示される名前が変わってきます。

変更したシート名はシートモジュールの( )内に記入されます

 

例:Sheet1をシート1という名前に変更した場合

Sheet1(Sheet1) ⇒ Sheet1(シート1) に変更されます。

 

ブックモジュール

青線で囲まれたThisWorkbookと表示されているものがブックモジュールです。自動で実行するマクロなどはブックモジュールに書き込みます。

 

フォームモジュール

オレンジの線で囲まれたモジュールがUserFormです。このモジュールはユーザーフォームを操作するマクロを書き込む場所になります。VBEで[ 挿入 ]から[ ユーザーフォーム ]を選択するとフォームモジュールを使うことができるようになります。

 

標準モジュール

緑の線で囲まれたModule1を標準モジュールといいます。 この標準モジュールはマクロを書き込む場所であり、記録されたマクロを実行すると挿入されるモジュールです。VBEからは[ 挿入 ] ⇒ [ 標準モジュール ]を選択することでも表示させることが可能です。

 

このようにVBAには種類の異なる複数のモジュールが用意されています。

次にどんな変数がいくつのモジュールで使われるのか、説明していきます。

 

ローカル変数(プロシージャ間での適用範囲)

1つのモージュール内で宣言したプロシージャでしか使うことができません。

 

モジュールレベル変数(宣言をしたモジュール内にある全てのプロシージャ)

複数のモジュールを使って変数を使用します。今回の例は標準モジュールです。

Module1 , Module2で変数の宣言をします。

 

そのまま宣言したのではエラーが発生してしまうので「パブリック変数」というものを使います。

VBA