VBAテクニック集 VBA一覧 その他の知識 プロパティ・メソッド解説

【VBA】メソッドとは?意味・使い方・実務での活用例を徹底解説

ExcelVBAを学んでいると、「Range」「Workbook」「Sheet」などのオブジェクトとともに、
「Clear」「Copy」「Save」「Close」などのメソッド(Method)という言葉をよく耳にします。

しかし、「プロパティとどう違うの?」「メソッドって何をしているの?」と疑問に思う人も多いでしょう。

VBAで正しくメソッドを理解することは、マクロを“操作記録ツール”から“自在に動く自動化システム”へと進化させる第一歩です。

この記事では、VBAのメソッドの意味と使い方、プロパティとの違い、代表的なメソッド一覧と実務での応用例までを徹底的に解説します。

✅ メソッドとは?VBAの動作命令の基本

VBAでは、Excelのセル・シート・ブックなどを「オブジェクト(Object)」として扱います。
そして、メソッドとはそのオブジェクトに何らかの動作をさせる命令のことです。


・ メソッドの基本構文

オブジェクト.メソッド [引数]

例:

Range("A1").Clear

このコードは、「A1セルをクリア(中身を削除)する」という命令です。
ここでの構成を分解すると次のようになります。

要素意味
Range("A1")対象(オブジェクト)
Clear実行する動作(メソッド)

つまり、「Range」というオブジェクトに対して、「Clear」という動作を命じている、という構文になります。


・メソッド=「動詞」、プロパティ=「名詞」

メソッドを理解するコツは、「動詞」として捉えることです。

種類内容
プロパティオブジェクトの性質・状態を表すRange("A1").Value = "売上"
メソッドオブジェクトに動作をさせる命令Range("A1").Clear

つまり、「プロパティ=情報(名詞)」「メソッド=動作(動詞)」と覚えると、感覚的に理解しやすくなります。

参考:【VBA】メソッド一覧と使い方|初心者でも理解できる動作命令の全知識


✅ VBAでよく使う代表的なメソッド一覧(オブジェクト別)

VBAのメソッドは非常に多く存在しますが、まずは主要オブジェクト別に覚えておくと実務で役立ちます。


【1】Range(セル)オブジェクトの代表的メソッド

セルや範囲に対して直接操作を行うメソッドです。

メソッド名動作内容使用例
Clear内容・書式をすべて削除Range("A1").Clear
ClearContents内容だけ削除(書式は残す)Range("A1").ClearContents
CopyコピーするRange("A1").Copy Range("B1")
Deleteセルを削除Range("A1").Delete
Insertセルを挿入Range("A1").Insert
Selectセルを選択Range("A1").Select
Sort並べ替えを実行Range("A1:C10").Sort Key1:=Range("A1")
Autofit列幅・行高を自動調整Columns("A").AutoFit
Find特定の値を検索Range("A1:A100").Find("合計")

💡ポイント:

Rangeオブジェクトはメソッドが非常に豊富で、セル操作・書式設定・検索などのほとんどがここで完結します。
特にClearClearContentsの違いは実務でよく使うため、混同しないよう注意しましょう。

参考:【VBA】Rangeオブジェクトを作成する方法|セル範囲を自在に操作する基礎と応用


【2】Worksheet(シート)オブジェクトの代表的メソッド

ワークシート単位で動作するメソッドです。

メソッド名動作内容使用例
ActivateシートをアクティブにするSheets("集計").Activate
CopyシートをコピーSheets("集計").Copy After:=Sheets("分析")
Deleteシートを削除Sheets("Sheet3").Delete
Moveシートを移動Sheets("Sheet1").Move Before:=Sheets("Sheet2")
Calculate再計算を実行Sheets("集計").Calculate
Protectシートを保護Sheets("集計").Protect Password:="1234"
Unprotectシートの保護を解除Sheets("集計").Unprotect "1234"

⚙ 実務例:

月報テンプレートを自動で複製する際には「Copy」メソッドを多用します。
また、ユーザー操作を防ぐためにProtectでシートを保護するのも定番です。

参考:【VBA】Protectメソッド:操作制限・保護・マクロ有効


【3】Workbook(ブック)オブジェクトの代表的メソッド

ファイル全体を操作するメソッドです。

メソッド名動作内容使用例
Openブックを開くWorkbooks.Open "C:\Data.xlsx"
Closeブックを閉じるThisWorkbook.Close
Save保存ThisWorkbook.Save
SaveAs別名で保存ThisWorkbook.SaveAs "C:\Report.xlsx"
Activateアクティブ化Workbooks("集計.xlsx").Activate
Add新しいブックを作成Workbooks.Add

💡実務のポイント:

ブック単位の自動保存・バックアップ・一括処理に欠かせません。
特に「Open → Save → Close」の流れは複数ファイル処理で頻繁に登場します。

参考:【VBA】ファイルを選択して開く方法|Application.GetOpenFilenameとWorkbooks.Openの実践例


【4】Application(Excel全体)オブジェクトの代表的メソッド

Excelアプリ全体に関わる設定や動作を制御するメソッドです。

メソッド名動作内容使用例
Calculate全ての再計算を実行Application.Calculate
Wait指定時間まで待機Application.Wait Now + TimeValue("0:00:05")
OnTime指定時刻にマクロを実行Application.OnTime Now + TimeValue("0:01:00"), "MacroName"
QuitExcelを終了Application.Quit
CutCopyModeコピー状態を解除Application.CutCopyMode = False

⚠ 注意点:

Application.QuitはExcelそのものを閉じる命令なので、
実行前に必ず保存処理を入れるようにしましょう。

参考:【VBA】処理が終わるまで待機させる【Sleep関数・Application.Waitメソッド】


✅ メソッドを使う実践的な例

次に、実際の業務で役立つメソッド活用例をいくつか紹介します。
これを理解すると、VBAで何ができるかがより明確になります。


① セルの内容をクリアして書式を整える

Sub ClearAndFormat()
    With Range("A1:A10")
        .ClearContents
        .Interior.Color = vbYellow
        .Font.Bold = True
    End With
End Sub

ここでは、ClearContentsメソッドで内容を消し、
フォントや背景色を整える処理を組み合わせています。
メソッドとプロパティを連携させることで“動作+状態変更”を同時に実現しています。

参考:【VBA】セルをクリア(値を削除):ClearContentsメソッド


② ブックを開いて保存・閉じる

Sub OpenAndCloseBook()
    Dim wb As Workbook
    Set wb = Workbooks.Open("C:\Test\Report.xlsx")
    
    wb.Save
    wb.Close
End Sub

実務で頻繁に使う「Open → Save → Close」の典型パターンです。
複数ファイルを自動処理する際は、この構造をループ処理で使います。

参考:【VBA】ファイルを閉じる方法|保存あり・なしの使い分けと実務活用例


③ 特定のシートをコピーして名前変更

Sub CopySheet()
    Sheets("Template").Copy After:=Sheets(Sheets.Count)
    ActiveSheet.Name = "Report_" & Format(Date, "yyyymm")
End Sub

CopyNameを組み合わせることで、
毎月のレポートテンプレートを自動生成するマクロを作成できます。
ルーチン業務の大幅な効率化につながる実践例です。

参考:【Excel】シートをコピーして書式をそのまま保つ方法|罫線・背景色・列幅・印刷設定


④ 指定時間に自動処理を実行

Sub AutoRun()
    Application.OnTime TimeValue("18:00:00"), "SendMail"
End Sub

このコードは、指定時刻に「SendMail」マクロを自動実行します。
OnTimeメソッドを使うと、定期処理や夜間バッチ実行なども可能です。




✅ メソッドを理解するための3つの学習ポイント

VBAのメソッドを体系的に覚えるには、以下の3ステップが効果的です。


① 「オブジェクト → メソッド」の構造で考える

すべてのメソッドは、何らかのオブジェクトに対して動作します。
したがって「どのオブジェクトに命令しているか」を意識することが重要です。

例:

コード意味
Range("A1").ClearセルA1をクリア
Sheets("集計").Protect集計シートを保護
Workbooks.Openブックを開く

“メソッドは単体で存在しない”という点を押さえておきましょう。


② 引数(パラメータ)を使いこなす

メソッドの中には、動作を指定するための引数を持つものがあります。

例:

Range("A1:A10").Sort Key1:=Range("A1"), Order1:=xlDescending

ここでは「並べ替えの基準(Key1)」や「昇順/降順(Order1)」を引数で指定しています。
引数を活用すれば、1つのメソッドで多彩な動作を制御できます。


③ マクロの記録でメソッドを観察する

Excelの「マクロの記録」機能を使えば、手動操作をVBAコードとして出力できます。
これを観察することで、どの操作がどのメソッドに対応しているかを学べます。

例:
セルをコピー → 貼り付けを記録すると、以下のようなコードが出力されます。

Range("A1").Select
Selection.Copy
Range("B1").Select
ActiveSheet.Paste

このように、日常操作をマクロ記録で観察することで、自然にメソッド名を覚えられます。


✅ メソッドを使う上での注意点とトラブル対策

メソッドは強力ですが、誤用するとエラーや意図しない動作を招くこともあります。


⚠ 1. オブジェクトが存在しないとエラーになる

例:

Sheets("Report").Delete

指定したシートが存在しないと「実行時エラー9(インデックスが有効範囲にありません)」が発生します。
安全のため、存在確認を入れてから実行するのが基本です。

If SheetExists("Report") Then Sheets("Report").Delete

⚠ 2. Excel全体に影響するメソッドは慎重に

Application.QuitWorkbook.Closeなどは、他のブックまで閉じてしまう可能性があります。
実行前に保存処理や確認メッセージを入れましょう。


⚠ 3. 繰り返し処理では画面更新を止める

メソッドを大量に実行する場合は、処理速度が低下します。
以下を冒頭に入れると高速化できます。

Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual

処理後には必ず元に戻します。

Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic

✅ 実務でメソッドを使いこなすコツ

  • 動詞として覚える:「Copy=コピー」「Protect=保護」「Delete=削除」
  • 同じ処理をまとめる:「With」構文でコードを整理
  • プロパティと組み合わせる:メソッドで動作、プロパティで状態を変更
  • 失敗を恐れず試す:メソッドは実行結果がすぐ見えるので、試行学習が最適

■ まとめ:メソッドを理解すればVBAが“使える”ようになる

  • メソッドとは、オブジェクトに動作を指示する命令(「動詞」)
  • プロパティは「状態」、メソッドは「行動」
  • RangeWorksheetWorkbookApplicationなど主要オブジェクトごとに整理して覚える
  • マクロ記録機能やIntelliSenseを活用して自然に学習できる
  • 実務では「コピー」「削除」「保存」「保護」などが頻出

メソッドを正しく理解すると、VBAの世界が一気に広がります。
自分で処理を組み合わせ、業務全体を自動化するスクリプトを書けるようになることで、
「ただのマクロ記録者」から「実務エンジニア」へと進化できます。

    -VBAテクニック集, VBA一覧, その他の知識, プロパティ・メソッド解説