EXCEL VBA Call の使い方 (サブルーチンの活用・プロシージャの連携)

EXCEL VBA Call の使い方  (サブルーチンの活用)

 

 ●はじめに
ここでは、Callの使い方を説明いたします。Callの使い方の例として、下図を参照して下さい。メインプログラムからサブプログラムへ処理を一時的に実行させる時に、Callを使用します。図の通りにメインプログラムがあり、処理の中でサブプログラムA・Bと順番に実行させる時などに使用します。サブプログラムについては、メインプログラムに同じプログラムを何回も記入するとメインプログラムが長くなったりしまうので、サブプログラムを利用しながらメインプログラムを整理しつつプログラムを作成します。

 

 

●それでは、コードを使ってCallの説明をいたします。

●メインプログラムとサブプログラムAとサブプログラムBがあります。メインプログラムは、プログラム全体の制御部分になっていて、品名・単価・数量を入力します。サブプログラムAは、単価×数量の計算を行い結果を合計に代入します。サブプログラムは、計算結果をメッセージボックスで表示します。

 

 

 

 ●プログラム説明 (Call)

下表は、メインプログラムとサブプログラムへ引数の引継ぎ状況をあらわす表です。引数を使うことで、メインプログラムとサブプログラム間のデータを引き継ぐ事ができます。

●【品名を入力します】
●【単価を入力します】

●【数量を入力します】

 


変数
メインプログラム
引数の値
サブプログラムA
引数の値
サブプログラムB
引数の値
Tanka (long:数値)98,000   98,000
Kazu(Long:数値)55
Gokei(Long:数値)490,000490,000
Hinmei (String:文字列)ノートパソコンノートパソコン

 

 

 

 ●実行結果 ※Callを使って、サブプログラムを実行しました。

 

 

 

プロシージャの連携 (親プロシージャ ⇔ 子プロシージャ) サブルーチンの活用方法

 

 

 ●プログラム説明 (プロシージャの連携)

下記のサンプルプログラムは、Subプロシージャを複数のプロシージャから呼び出して実行するサンプルプログラムです。具体的な処理内容としては、ワークシートに表の元となるデータが登録されていて、これを子のプロシージャ【サブルーチン】として①表全体に罫線を引く②先頭行(見出し)罫線と背景色を塗りつぶす③最終行に罫線と背景色を塗りつぶす④表全体の罫線と背景色を削除しますからの構成で作成しております。メインのプロシージャから順番に①~④へ実行される形となります。

●親プロシージャ = メインプログラム
●子プロシージャ = サブルーチン


 

 

 

 ●実行前~実行後 ※プログラム(メインプログラム)実行後、ワークシートの表に罫線を引き、見出しと合計行が塗りつぶされました。最後に、表全体の罫線と背景色が削除されました。このように、メインプログラムとサブルーチンを組み合わせてプログラムを作成すると、何度でも繰り返し処理が簡単に実行する事が出来たり、処理内容ごとにサブルーチン(サブプログラム)を作成する事で、メンテナンスもしやすくなるメリットがあります。
(画面クリックして拡大)

 

【参照:再帰呼び出し:サンプルプログラム】

EXCEL VBA フォルダー内のファイル名をシートに一覧表示(サブフォルダー含める:再帰呼び出し)テクニック

 

最後まで、ご覧いただきまして誠に有難うございました。
以上でCall・プロシージャ連携の使い方でした。メインプログラムとサブプログラムなど使い分けて処理を行う時には、便利な機能になります。何度も同じプログラムを利用するときは、Callやプロシージャ連携で呼び出し効率よくプログラムを作成してください。
また、VBAに関するテクニックや便利な手法などをこのサイトに掲載していきますので、定期的に参照していただけると幸いです。