#19エクセルVBA入門-プロシージャから他のプロシージャをCallで呼び出す

Excel VBA

プロシージャから他のプロシージャを呼び出すことが出来ます。

よく使うプロシージャは部品化して都度呼び出して使うということを、プログラムでは頻繁に行います。

CallTestというプロシージャからSayHiというプロシージャを呼び出してみましょう。

ここまでは前回と変わりませんね。

Call SayHi(name) を追加します。

SayHi subプロシージャを呼び出します。その際nameを引数として、で渡しています。

Sub CallTestの完成です。

 

次に呼び出される Sub SayHiプロシージャを書いていきます。

 

ByVal は「値渡し」を意味します。他に「参照渡し」がありますが、今回は言及しません。

Variant型の変数name値渡し引数として受け取ると意味になります。

 

渡ってきた引数nameをDebug.Printでイミディエイトウィンドウに表示します。

その際、& 演算子で「ご無沙汰です、 西郷」と表示されるようにします。

Option Explicit

Sub CallTest()
 Dim names As Variant
 names = Array(“西郷”, “勝”, “一橋”)
 Dim name As Variant

 For Each name In names
  Call SayHi(name)
 Next name
End Sub

Sub SayHi(ByVal name As Variant)
 Debug.Print “ご無沙汰です、 ” & name
End Sub

コメント