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

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

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

サブプロシージャ

サブプロシージャとは複数あるプロシージャを1つにまとめて、プログラムの記述をわかりやすくしたものです。

 

VBAでプログラムを書くとき(Sub で始まりEnd Subで終わる)ものをサブプロシージャといいます。

今までにもいろんなところでサブプロシージャを見られてきたのではないでしょうか。

 

サブプロシージャは2つ3つなど複数組み合わせて使うこともできます。また別のサブプロシージャを呼び出して使うこともできます。

 

これから2つのサブプロシージャを作成し、1つのサブプロシージャで別のサブプロシージャの内容を呼び出すプログラムを作成します。

文字だけで見ると難しく見えますが、実行結果を見れば内容がすぐに分かります。

1つ1つ画像付きで説明していきます。

 

エクセルからVBEを起動します。

ワークシートの画面で上のメニューの[ ツール ] ⇒ [ マクロ ] ⇒ [ Visual Basic Editor ] をクリックします。

 

VBA サブプロシージャ

 

1つ目のサブプロシージャを作成します。

 

VBA サブプロシージャ

 

この状態でサブプロシージャを実行すると2回メッセージボックスを表示します。

 

1つ目のサブプロシージャ作成は一旦ここで止めて、2つ目のサブプロシージャを作成します。

 

VBA サブプロシージャ

 

2つめのサブプロシージャを作成しました。

 

複数のサブプロシージャを使うときは、1つのサブプロシージャを完成 (End Subでプロシージャを閉じた段階で完成) させた後、改行をして再び「Sub ○○○」と入力すると自動的に横線が入ります。

この線はプロシージャがどこで分かれているかの目印になります。

 

この段階での状況を説明します。

2つのサブプロシージャはそれぞれ別なものなので、独立したサブプロシージャが2つ並んでいる状態です。

ここでサブプロシージャの実行を行っても、2つのサブプロシージャの内容をまとめて実行させることはできません。

 

2つのサブプロシージャを併せて実行するにはどちらかで呼び出す必要があります。

 

VBA サブプロシージャ

 

サブプロシージャ1サブプロシージャ2の内容を呼び出します。

呼び出したサブプロシージャ2が終了すると、サブプロシージャ1に戻りそのままプロシージャが実行されます。

 

VBA サブプロシージャ

 

サブプロシージャを実行するときは必ず呼び出し側で行いましょう。

呼び出される側でサブプロシージャを実行しても、呼び出される側の内容しか表示されません。

(今回の場合だとサブプロシージャ2のみ)

 

それではプロシージャ1を実行してみましょう。

 

VBA サブプロシージャ

 

サブプロシージャ1の中でサブプロシージャ2のメッセージボックスを呼び出しました。

これにより3つのメッセージボックスを表示されます。

VBA