【VBA】Call の使い方と省略ルール|引数の括弧の違いをわかりやすく解説

VBAでプロシージャ(Sub)を呼び出す方法として、
Call ステートメント を使う方法と 省略(直接呼び出し) があります。

どちらも正しく理解しておくと、既存コードの読みやすさ向上や保守がしやすくなります。
ここでは、Callの基本、書き方の違い、注意点までまとめて解説します。


スポンサーリンク

1. Callステートメントとは

Call ステートメントは、Subプロシージャを明示的に呼び出すための命令 です。

古いVBAコードではよく見られますが、現在では
Call は省略されることが多い という特徴があります。


スポンサーリンク

2. Callを使ったプロシージャ呼び出し

▼ 基本形

Sub Main()
    Call ShowMessage
End Sub

Sub ShowMessage()
    MsgBox "こんにちは"
End Sub

Call を使うと、明示的に「呼び出し」をしていることが分かりやすくなります。


スポンサーリンク

3. Callを使う場合のルール

Call を使うときは、引数を必ずカッコで括る 必要があります。

▼ 引数ありの例

Sub Main()
    Call ShowMessage("田中")
End Sub

Sub ShowMessage(name As String)
    MsgBox "こんにちは、" & name & "さん"
End Sub

Call を使う場合はカッコ必須
Call を省略する場合はカッコ禁止

という点が重要です。


スポンサーリンク

4. Callを省略した呼び出し(一般的な書き方)

現在のVBAでは、Call を使わずにプロシージャ名だけ書くのが主流です。

▼ 引数なし

Sub Main()
    ShowMessage
End Sub

▼ 引数あり

Sub Main()
    ShowMessage "田中"
End Sub

Call なしの場合は カッコを付けない のがルールです。


スポンサーリンク

5. Call あり・なしの比較まとめ

書き方引数の書き方現代的か?
Call ShowMessage(“田中”)カッコ必要やや古い
ShowMessage “田中”カッコ不要一般的 / 推奨

スポンサーリンク

6. Callを使うメリット・デメリット

■ メリット

  • 「呼び出している」ことが見た目で明確
  • 古いコードの統一性を保てる

■ デメリット

  • カッコのルールが面倒
  • 現代のVBAでは冗長とされがち
  • 初心者には読みづらい

スポンサーリンク

7. 実務でのおすすめルール

実務では、以下のルールを採用することを推奨します。

  • Call は基本使わない
  • Sub呼び出しはカッコを付けない
  • Function 呼び出しはカッコを付ける(戻り値扱うため)

特に今後新規でプロシージャを設計する場合は、
Call を使わない方がコードがシンプルで保守性も高くなります。


スポンサーリンク

8. まとめ

今回は Call ステートメントの使い方と省略表記の違い を解説しました。

  • Call は Sub を呼び出すための構文
  • Call を使うと引数はカッコが必要
  • Call を省略する場合はカッコを付けてはいけない
  • 現代のVBAでは Call を使わないのが一般的

コメント

タイトルとURLをコピーしました