プロシージャから他のプロシージャを呼び出すことが出来ます。
よく使うプロシージャは部品化して都度呼び出して使うということを、プログラムでは頻繁に行います。
CallTestというプロシージャからSayHiというプロシージャを呼び出してみましょう。
Sub CallTest() Dim names As Variant names = Array("西郷", "勝", "一橋") Dim name As Variant For Each name In names
ここまでは前回と変わりませんね。
Call SayHi(name) を追加します。
SayHi subプロシージャを呼び出します。その際nameを引数として、値で渡しています。
Sub CallTest() Dim names As Variant names = Array("西郷", "勝", "一橋") Dim name As Variant For Each name In names Call SayHi(name)
Sub CallTestの完成です。
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プロシージャを書いていきます。
Sub SayHi(ByVal name As Variant)
ByVal は「値渡し」を意味します。他に「参照渡し」がありますが、今回は言及しません。
Variant型の変数nameを値渡しで引数として受け取ると意味になります。
Sub SayHi(ByVal name As Variant) Debug.Print "ご無沙汰です、 " & name End Sub
渡ってきた引数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
コメント