【VBA】メソッドとプロパティにおける記述方式の違い

VBAでは、メソッドプロパティを操作する際の記述方法に違いがあります。特に「括弧()」の有無や、戻り値がある場合・ない場合での書き方が異なるため、最初に混乱しやすいポイントです。

この記事では、その違いを整理して解説します。


1. メソッドとプロパティの基本的な違い

  • メソッド(Method)
     オブジェクトに対して「処理・動作」を実行するもの
     例:CopySaveAsClose など
  • プロパティ(Property)
     オブジェクトの「状態や情報」を取得・設定するもの
     例:ValueNameCount など

2. 括弧が付く/付かないパターン

メソッドの場合

Range("A1").Copy '引数なし → 括弧不要
Range("A1").Copy Range("B1") '引数あり → 括弧不要(代入やCallを使わない場合)

プロパティの場合

Range("A1").Value = 100  '値の設定 → 括弧不要
MsgBox Range("A1").Value '値の取得 → 括弧不要

👉 基本的に 括弧は不要 ですが、戻り値を受け取る場合や Call を使う場合に括弧が必要になります。


3. 戻り値がある場合/ない場合の括弧の違い(メソッド)

戻り値がある場合(括弧が必要)

値を返す処理では、括弧を付けます。

Dim result As String
result = Range("A1:A10").Find("検索") '戻り値あり → 括弧必須

戻り値がない場合(括弧は不要)

動作だけを実行する処理では、括弧を付けません。

Range("A1").ClearContents '戻り値なし → 括弧不要

4. まとめ

  • プロパティ → 基本的に括弧不要(値を設定・取得するだけだから)
  • メソッド
    • 引数なし → 括弧不要
    • 引数あり → 括弧不要(代入やCallを使わない場合)
    • 戻り値を代入する場合 → 括弧必須

5. ポイント

  • 値を返す処理なら「括弧あり」
  • 動作だけ実行なら「括弧なし」
  • 初心者は「プロパティ=括弧なし」「関数っぽいもの=括弧あり」と覚えると理解しやすいです。

コメント

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