前回パチンコをシミュレーションするような記事を紹介しましたが、大した行数でないのに2つのプロシージャを用意してメインのプロシージャから別のプロシージャを呼び出すようにしました。
あれしきの処理を2つのプロシージャに分けることに賛否・好き嫌いがあると思いますが、プロシージャからプロシージャを呼び出すのはいつか必要になると思うので簡単に説明しておきます。
Sub Proc1()
Call Proc2
End Sub
Sub Proc2()
何らかの処理
End Sub
Proc1からProc2を呼び出す場合はこのようにCallステートメントを使います。実際はCallを使わず「Proc2」とだけしても呼び出すことはできますが、プロシージャ名だけだと何だコレ?となることがある(耄碌のせい?)のでわたしはほぼ、Callステートメントを使います。
ただし、Functionプロシージャを呼び出す場合は戻り値を受取る変数などとセットで使う事が多いのでCallは使いません。
val = Proc3
あれしきの処理を2つのプロシージャに分けることに賛否・好き嫌いがあると思いますが、プロシージャからプロシージャを呼び出すのはいつか必要になると思うので簡単に説明しておきます。
Sub Proc1()
Call Proc2
End Sub
Sub Proc2()
何らかの処理
End Sub
Proc1からProc2を呼び出す場合はこのようにCallステートメントを使います。実際はCallを使わず「Proc2」とだけしても呼び出すことはできますが、プロシージャ名だけだと何だコレ?となることがある(耄碌のせい?)のでわたしはほぼ、Callステートメントを使います。
ただし、Functionプロシージャを呼び出す場合は戻り値を受取る変数などとセットで使う事が多いのでCallは使いません。
Sub Proc1()
Dim val As Integer
Dim val As Integer
val = Proc3
End Sub
Function Proc3() As Integer
何らかの処理
Proc3=何らかの値
End Function
なお上記はシンプルな例で、引数を使うプロシージャ
Sub Proc4(arg As String)
を呼び出す場合は記述法が違いますので
Call Proc4("String arg")や
Proc4 "String arg" のように 結果は同じ
ヘルプで調べてください。
いきあたりばったりなので説明が前後して申し訳ないです。
わからないことはネットで調べるのも有効ですがVBEでF1キーを使ってヘルプを表示するのも助けになりますので、分からないものにカーソルをセットして(たとえばCallのどこかにカーソル)F1キーを押してみてください。
Function Proc3() As Integer
何らかの処理
Proc3=何らかの値
End Function
なお上記はシンプルな例で、引数を使うプロシージャ
Sub Proc4(arg As String)
を呼び出す場合は記述法が違いますので
Call Proc4("String arg")や
Proc4 "String arg" のように 結果は同じ
ヘルプで調べてください。
いきあたりばったりなので説明が前後して申し訳ないです。
わからないことはネットで調べるのも有効ですがVBEでF1キーを使ってヘルプを表示するのも助けになりますので、分からないものにカーソルをセットして(たとえばCallのどこかにカーソル)F1キーを押してみてください。
コメント