MENU

【VBA】Callステートメントの使い方を徹底解説【Call】

VBAで複数のプロシージャや関数を作成すると、それらを効率的に管理・呼び出したい場面が出てきます。そんな時に役立つのがCallステートメントです。この記事では、Callの基本的な使い方から応用例までをわかりやすく解説します

Callステートメントとは

Callステートメントは、VBAで別のプロシージャや関数を呼び出すために使用する命令文です。複雑な処理を整理し、可読性の高いコードを作成するのに役立ちます。

基本的な構文

Call プロシージャ名(引数)

引数がない場合は、括弧も不要です。

具体例

Sub MainProcedure()
    Call SubProcedure1
    Call SubProcedure2(10)
End Sub

Sub SubProcedure1()
    MsgBox "SubProcedure1が呼び出されました"
End Sub

Sub SubProcedure2(val As Integer)
    MsgBox "SubProcedure2が呼び出されました。引数の値は " & val
End Sub

上記の例では、MainProcedureを実行すると、SubProcedure1SubProcedure2が順に呼び出されます。SubProcedure2には引数として10が渡されます。

Callステートメントは省略可能

実は、Callステートメントは省略可能です。プロシージャや関数を呼び出す際、必ずしもCallを記述する必要はありません。

Sub MainProcedure()
    SubProcedure1
    SubProcedure2 10
End Sub

Callを使わなくても動作しますが、Callを使用することでコードの読みやすさが向上する場合があります。

Callのメリット

明示的な呼び出し

Callを使うことで、「この行はプロシージャや関数を呼び出している」という意図が明確になります。特に複雑なコードや他人が作成したコードを読む際に役立ちます。

引数がない場合の使い方

引数がないプロシージャを呼び出す場合、Callを使うと呼び出しがより明示的になります。

Call SubProcedureWithoutArgs

Callを使わない場合の注意点

Callを使わずにプロシージャや関数を呼び出す場合、引数がある場合には括弧を省略します

' Callあり
Call SubProcedure(10)

' Callなし
SubProcedure 10

関数とCallの関係

関数の戻り値を取得する場合には、通常Callは使用せず、直接戻り値を変数に代入します。

Dim result As Integer
result = FunctionProcedure(5)

Callを使うと関数の戻り値は無視されてしまうため、関数を呼び出す際には基本的に使用しません。

まとめ

VBAで複数のプロシージャや関数を呼び出す際に使う「Callステートメント」は、コードの可読性や整理に役立ちます。ただし、Callは省略可能なため、シンプルにしたい場合は省略しても構いません。自分のコードスタイルに合った使い方を選んでみてください!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

自動車メーカーで、VBAやRPAを用いた業務効率化・業務改善を行っております。

目次