VBAでは、メソッドとプロパティを操作する際の記述方法に違いがあります。特に「括弧()」の有無や、戻り値がある場合・ない場合での書き方が異なるため、最初に混乱しやすいポイントです。
この記事では、その違いを整理して解説します。
目次
1. メソッドとプロパティの基本的な違い
- メソッド(Method)
オブジェクトに対して「処理・動作」を実行するもの
例:Copy
、SaveAs
、Close
など - プロパティ(Property)
オブジェクトの「状態や情報」を取得・設定するもの
例:Value
、Name
、Count
など
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. ポイント
- 値を返す処理なら「括弧あり」
- 動作だけ実行なら「括弧なし」
- 初心者は「プロパティ=括弧なし」「関数っぽいもの=括弧あり」と覚えると理解しやすいです。
コメント