ExcelVBAを学び始めると、必ず出てくる用語が「プロパティ」と「メソッド」です。
どちらもオブジェクト(セル・シート・ブックなど)を操作するために使われますが、
違いを理解せずに使ってしまうと、「なぜ動かない?」「何が違うの?」と混乱する原因になります。
この記事では、VBAにおけるプロパティとメソッドの意味の違いから、主要な一覧、実務での使い分けのコツまでを分かりやすく解説します。
最後まで読むことで、ExcelVBAの「オブジェクト思考」をしっかり理解でき、どんな操作も自信をもって書けるようになります。
目次
- ✅ VBAにおけるプロパティとメソッドの違いとは?
- ・プロパティ(Property)とは?
- ・メソッド(Method)とは?
- 🔍 違いをまとめると
- ✅ よく使うプロパティ一覧(VBA主要オブジェクト別)
- 【1】Range(セル・範囲)オブジェクトのプロパティ
- 【2】Worksheet(シート)オブジェクトのプロパティ
- 【3】Workbook(ブック)オブジェクトのプロパティ
- 【4】Application(Excelアプリ全体)のプロパティ
- ✅ よく使うメソッド一覧(VBA主要オブジェクト別)
- 【1】Range(セル)オブジェクトのメソッド
- 【2】Worksheet(シート)オブジェクトのメソッド
- 【3】Workbook(ブック)オブジェクトのメソッド
- 【4】Application(Excelアプリ全体)のメソッド
- ✅ 実務での「プロパティ × メソッド」組み合わせ例
- 例①:値を取得して書き込み(プロパティ×プロパティ)
- 例②:コピーとフォント設定(メソッド×プロパティ)
- 例③:シートの作成と名前変更(メソッド×プロパティ)
- 例④:自動保存付き終了処理
- ✅ プロパティ・メソッドを見つける3つの方法
- ① オブジェクトブラウザ(F2)
- ② IntelliSense(入力候補機能)
- ③ マクロの記録機能で確認
- ■ まとめ:プロパティとメソッドの理解がVBA上達の鍵
✅ VBAにおけるプロパティとメソッドの違いとは?
VBAは「オブジェクト指向」という考え方に基づいています。
Excelの中で扱うあらゆる要素(セル、シート、ブックなど)は“オブジェクト”であり、
それぞれに**性質(プロパティ)と動作(メソッド)**が備わっています。
・プロパティ(Property)とは?
オブジェクトが「持っている情報」や「状態」を表すものです。
設定・取得ができます。
たとえば:
Range("A1").Value = 100
ここで「Value」はセルの“値”を意味するプロパティ。
セルA1の中身を読み取ったり書き換えたりできます。
参考:【VBA】プロパティ一覧|意味・使い方・実務で覚えるべき基本と応用
・メソッド(Method)とは?
オブジェクトに「何か動作をさせる」命令のことです。
プロパティが「属性」なのに対して、メソッドは「動作」。
たとえば:
Range("A1").Clear
「Clear」はセルをクリアする動作を行うメソッドです。
動作(アクション)を伴うのがメソッドだと覚えましょう。
参考:【VBA】メソッドの戻り値(返り値)とは?取得方法と活用例
🔍 違いをまとめると
| 比較項目 | プロパティ | メソッド |
|---|---|---|
| 意味 | 状態・属性を表す | 動作・処理を行う |
| 例 | Range("A1").Value | Range("A1").Clear |
| 操作 | 値の取得・設定 | コマンドの実行 |
| 戻り値 | あり(値) | なし(処理結果のみ) |
| コードでの使い方 | = で代入 | 括弧「()」付きで実行することが多い |
プロパティ=情報
メソッド=行動
このシンプルな違いを押さえるだけで、コードの意味がぐっと理解しやすくなります。
✅ よく使うプロパティ一覧(VBA主要オブジェクト別)
ExcelVBAの世界には何百ものプロパティがありますが、まずは頻出するものを覚えるのが効率的です。
ここでは、実務で最もよく使われる代表的なプロパティをまとめました。
【1】Range(セル・範囲)オブジェクトのプロパティ
| プロパティ名 | 意味 | 使用例 |
|---|---|---|
| Value | セルの値を取得・設定 | Range("A1").Value = "売上" |
| Formula | 数式を設定 | Range("B1").Formula = "=SUM(A1:A3)" |
| Address | セルのアドレスを取得 | MsgBox Range("B3").Address |
| Font | フォントオブジェクト | Range("A1").Font.Bold = True |
| Interior | 背景色オブジェクト | Range("A1").Interior.Color = vbYellow |
| Row / Column | 行・列番号を返す | MsgBox Range("C5").Row |
| NumberFormat | 表示形式 | Range("A1").NumberFormat = "0.00" |
💡ポイント:
「Font」や「Interior」のように、さらに下層のオブジェクトを持つプロパティもあります。
これらを使いこなすと、Excelのデザインや視認性を自動で整えるマクロが簡単に作れます。
参考:【VBA】Range型の使い方|セル範囲を自在に操作する基本と応用テクニック
【2】Worksheet(シート)オブジェクトのプロパティ
| プロパティ名 | 意味 | 使用例 |
|---|---|---|
| Name | シート名を取得・変更 | Sheets(1).Name = "集計表" |
| Visible | シートの表示/非表示 | Sheets("Sheet2").Visible = xlSheetVeryHidden |
| UsedRange | 使用中の範囲を取得 | MsgBox Sheets(1).UsedRange.Address |
| ProtectContents | 保護状態を返す | If Sheet1.ProtectContents Then MsgBox "保護中" |
| Index | シートの順番番号 | MsgBox Sheets("集計表").Index |
⚙ 実務の例:
「Visible」プロパティを利用して、特定シートだけ非表示にする業務ツールは多いです。
また「UsedRange」を使えば、データ入力範囲を自動判定して処理を省略できます。
参考:【VBA】Worksheet.Activate が実行されない原因と解決方法
【3】Workbook(ブック)オブジェクトのプロパティ
| プロパティ名 | 意味 | 使用例 |
|---|---|---|
| Name | ブック名を取得 | MsgBox ThisWorkbook.Name |
| Path | 保存場所のパス | MsgBox ThisWorkbook.Path |
| FullName | パス+ファイル名 | MsgBox ThisWorkbook.FullName |
| Saved | 保存済みかどうか | If Not ThisWorkbook.Saved Then ThisWorkbook.Save |
| ReadOnly | 読み取り専用か判定 | If ThisWorkbook.ReadOnly Then MsgBox "読み取り専用" |
💡実務での利用例:
「Saved」プロパティで変更があったブックだけを自動保存するマクロは定番です。
ブック管理系の処理を自動化するうえで欠かせません。
参考:【VBA】ファイルを選択して開く方法|Application.GetOpenFilenameとWorkbooks.Openの実践例
【4】Application(Excelアプリ全体)のプロパティ
| プロパティ名 | 意味 | 使用例 |
|---|---|---|
| ScreenUpdating | 画面更新のON/OFF | Application.ScreenUpdating = False |
| Calculation | 計算モード(自動/手動) | Application.Calculation = xlManual |
| DisplayAlerts | 警告メッセージの表示設定 | Application.DisplayAlerts = False |
| StatusBar | ステータスバーに文字表示 | Application.StatusBar = "処理中..." |
| Version | Excelのバージョン番号 | MsgBox Application.Version |
⚙ 実務のコツ:
大規模処理ではScreenUpdatingやDisplayAlertsを一時的にOFFにして、
処理速度を上げるのが鉄則です。終了後はTrueに戻すことも忘れずに。
参考:【VBA】Application.ScreenUpdatingプロパティの使用方法と特徴
✅ よく使うメソッド一覧(VBA主要オブジェクト別)
次に、実際に動作を実行する「メソッド」をオブジェクト別に整理します。
【1】Range(セル)オブジェクトのメソッド
| メソッド名 | 動作 | 使用例 |
|---|---|---|
| Clear | 内容をすべて削除 | Range("A1").Clear |
| Copy | コピーする | Range("A1").Copy Range("B1") |
| Select | セルを選択 | Range("A1").Select |
| Delete | セルを削除 | Range("A1").Delete |
| Insert | セルを挿入 | Range("A1").Insert |
| Sort | 並べ替えを実行 | Range("A1:C10").Sort Key1:=Range("A1") |
💡豆知識:
「ClearContents」「ClearFormats」「ClearComments」など、目的別に派生メソッドも多数存在します。
目的に応じて使い分けるとスマートです。
【2】Worksheet(シート)オブジェクトのメソッド
| メソッド名 | 動作 | 使用例 |
|---|---|---|
| Activate | シートをアクティブにする | Sheets("集計").Activate |
| Copy | シートをコピーする | Sheets("Sheet1").Copy After:=Sheets("Sheet2") |
| Delete | シートを削除 | Sheets("Sheet3").Delete |
| Protect / Unprotect | シートの保護・解除 | Sheets("集計").Protect Password:="1234" |
| Calculate | シート内の再計算 | Sheets("集計").Calculate |
⚙ 実務の使い方:
毎月の報告書を自動コピーして作る処理では「Copy」メソッドが定番。
また、パスワード付きの保護を自動で設定するメソッドも頻出です。
【3】Workbook(ブック)オブジェクトのメソッド
| メソッド名 | 動作 | 使用例 |
|---|---|---|
| Save | ブックを保存 | ThisWorkbook.Save |
| SaveAs | 名前を付けて保存 | ThisWorkbook.SaveAs "C:\backup.xlsx" |
| Close | ブックを閉じる | ThisWorkbook.Close |
| Open | ブックを開く | Workbooks.Open "C:\data.xlsx" |
| Activate | ブックをアクティブに | Workbooks("集計.xlsx").Activate |
💡実務の応用:
ブックの一括処理マクロでは、これらのメソッドを組み合わせて
「複数ファイルを順に開き→編集→保存→閉じる」自動処理を実現します。
【4】Application(Excelアプリ全体)のメソッド
| メソッド名 | 動作 | 使用例 |
|---|---|---|
| Calculate | 全ブックを再計算 | Application.Calculate |
| Wait | 指定時間まで待機 | Application.Wait Now + TimeValue("0:00:03") |
| OnTime | 指定時刻にマクロ実行 | Application.OnTime Now + TimeValue("0:05:00"), "MacroName" |
| Quit | Excelを終了 | Application.Quit |
⚙ ポイント:
Excel全体を制御するメソッドは、バッチ処理や自動スケジュール実行で重宝します。
ただし「Quit」は誤って使うとExcel自体が閉じるため、慎重に扱いましょう。
✅ 実務での「プロパティ × メソッド」組み合わせ例
プロパティとメソッドは、単体で使うより組み合わせることで強力な自動化が可能になります。
例①:値を取得して書き込み(プロパティ×プロパティ)
Range("B1").Value = Range("A1").Value
「A1」セルのValueプロパティを取得し、「B1」のValueプロパティに代入。
このように、プロパティ同士でデータの移動が簡単にできます。
例②:コピーとフォント設定(メソッド×プロパティ)
Range("A1").Copy Range("B1")
Range("B1").Font.Bold = True
まず「Copy」メソッドでセルをコピーし、
続けてFontプロパティで書式を変更。
動作と状態の組み合わせがVBAの基本構造です。
参考:【Excel】ハイパーリンクが設定できない原因と解決方法【完全ガイド】
例③:シートの作成と名前変更(メソッド×プロパティ)
Sheets.Add.Name = "新規シート"
「Add」メソッドで新しいシートを作り、
そのまま「Name」プロパティでシート名を設定。
1行で完結できる実務的な書き方です。
例④:自動保存付き終了処理
If Not ThisWorkbook.Saved Then
ThisWorkbook.Save
End If
Application.Quit
Savedプロパティで「保存済みか」を確認し、
Saveメソッドで保存、最後にQuitメソッドで終了。
安全にブックを閉じる自動終了スクリプトです。
✅ プロパティ・メソッドを見つける3つの方法
「どんなプロパティ・メソッドがあるのか分からない」という場合は、
VBAの開発環境(VBE)で簡単に確認できます。
① オブジェクトブラウザ(F2)
VBEで「F2キー」を押すと、「オブジェクトブラウザ」が開きます。
ここにすべてのプロパティとメソッドが一覧で表示されます。
検索欄に「Range」と入力すると、その中にある全プロパティ・メソッドが見られます。
不明な項目を探す際は最も確実な方法です。
② IntelliSense(入力候補機能)
コード入力時に「.(ドット)」を打つと、
そのオブジェクトが持つプロパティ・メソッドの候補がポップアップで表示されます。
たとえば:
Range("A1").
と入力すると、Value、Font、Clear、Copyなどの候補が一覧で出てきます。
よく使うプロパティやメソッドは、ここから自然に覚えられます。
③ マクロの記録機能で確認
Excelの「開発」タブ →「マクロの記録」で操作を記録し、
その後生成されたコードを見ると、使用されたプロパティやメソッドを確認できます。
GUI操作を通じて「実際に何が使われているのか」が分かるため、
初心者にとって最も実践的な学習方法です。
■ まとめ:プロパティとメソッドの理解がVBA上達の鍵
- プロパティ:オブジェクトの状態や値(情報)を表す
- メソッド:オブジェクトに対して何かを「実行」する命令
- Range、Worksheet、Workbook、Applicationの4階層で整理して覚える
- 組み合わせることで業務を自動化できる
- VBEの補助機能(F2・IntelliSense・マクロ記録)で簡単に確認可能
VBAを本格的に使いこなすには、
「どのオブジェクトにどんなプロパティ・メソッドがあるか」を感覚的に理解することが重要です。
一度構造をつかめば、Excel操作のほぼすべてをコードで再現できます。
今日から、あなたのVBAスクリプトに「プロパティ×メソッドの組み合わせ力」を取り入れてみましょう。