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

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

ExcelVBAでマクロを作成していると、「Clear」「Copy」「Delete」などのメソッド(Method)という言葉をよく目にします。
しかし、プロパティとの違いや使い方が分からないまま、なんとなく使っている人も多いのではないでしょうか。

メソッドはVBAの「動作命令」にあたるもので、これを理解すればExcelのあらゆる操作をコードで再現できるようになります。
この記事では、VBAメソッドの基本概念から主要な一覧、実務での応用テクニックまでを体系的に解説します。

✅ そもそも「メソッド」とは何か?

VBAは「オブジェクト指向」の仕組みで動いており、Excelのすべての要素(セル・シート・ブックなど)は「オブジェクト」と呼ばれます。
そして、そのオブジェクトに「動作させる命令」がメソッド(Method)です。

・メソッドとは動作命令のこと

たとえば次のコードを見てください。

Range("A1").Clear

これは「A1セルをクリアする」という命令です。
ここで「Range」はセルのオブジェクト、「Clear」はそのセルに対して動作を実行するメソッドです。

つまり、
プロパティ=オブジェクトの属性(状態・値)
メソッド=オブジェクトに対する動作(処理)
という関係になっています。

参考:【VBA】プロパティとメソッド一覧|違い・使い方・実務で覚える操作まとめ


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

VBAには数百種類以上のメソッドがありますが、ここでは実務で頻繁に登場する代表的なものをオブジェクト別に整理します。


【1】Range(セル・範囲)オブジェクトのメソッド

セルや範囲に対して使うメソッドは最も使用頻度が高いです。

メソッド名動作内容使用例
Clear値・書式・コメントをすべて削除Range("A1").Clear
ClearContents値だけ削除(書式は残す)Range("A1").ClearContents
ClearFormats書式だけ削除Range("A1").ClearFormats
CopyコピーするRange("A1").Copy Range("B1")
PasteSpecial貼り付け(値や書式などを指定)Range("B1").PasteSpecial xlPasteValues
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("売上")

💡ポイント:

「Clear」系メソッドは、用途に応じて使い分けるのが重要です。
特に実務では「ClearContents」(値だけ削除)が多く使われます。

参考:【VBA】Range(Cells)の組み合わせ|柔軟な範囲指定で業務効率化を実現する方法


【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"
PrintOut印刷するSheets("請求書").PrintOut

⚙ 実務活用例:

「毎月の報告書をコピー」「特定のシートだけ印刷」などの自動化処理に非常に有効です。
Protect / Unprotectは社内ツールでの安全性確保にも欠かせません。

参考:【VBA】Unprotectメソッド:ブック・シートの保護解除


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

ファイル全体(ブック)に対して実行するメソッドです。

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

💡ポイント:

複数ファイルを一括処理する場合、
Workbooks.Open → 編集 → SaveClose
という流れで使われます。
これをループ処理に組み合わせると、数十ファイルの自動処理も可能です。

参考:【VBA】Application.GetSaveAsFilenameメソッドを使用する方法


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

Excelアプリケーション全体を操作するメソッドです。
「処理待機」「自動再計算」「Excel終了」などに使います。

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

⚠ 注意:

QuitメソッドはExcel自体を終了させるため、誤って使うと作業中のブックまで閉じてしまいます。
事前に保存処理を入れるようにしましょう。

参考:【VBA】処理が終わるまで待機する方法|Sleep関数の使い方と実務例


【5】Chart(グラフ)オブジェクトのメソッド

グラフを自動で生成・更新・削除する際に使うメソッドです。

メソッド名動作内容使用例
ChartTypeグラフ種類を設定ActiveChart.ChartType = xlColumnClustered
SetSourceDataグラフデータを設定ActiveChart.SetSourceData Range("A1:B10")
Export画像として出力ActiveChart.Export "C:\chart.png"
Refreshデータ更新ActiveChart.Refresh
Deleteグラフ削除ActiveChart.Delete

💡補足:

グラフを自動更新する仕組みを作ると、
「毎月のレポート更新」を1クリックで済ませられます。


✅ メソッドを使った代表的な実務シナリオ

VBAメソッドの真価は、複数の命令を組み合わせて処理を自動化できる点にあります。
ここでは代表的なシナリオを紹介します。


① データを整形してコピー・貼り付け

Sub FormatAndCopy()
    With Range("A1:A10")
        .ClearFormats
        .NumberFormat = "0.00"
        .Copy Range("B1")
    End With
End Sub

数値データの書式を揃え、別列へコピー。
ClearFormats(書式クリア)とCopy(コピー)を組み合わせる典型例です。


② 月次報告書を自動作成(シート操作)

Sub CreateReportSheet()
    Sheets("ReportTemplate").Copy After:=Sheets(Sheets.Count)
    ActiveSheet.Name = "報告_" & Format(Date, "yyyymm")
    ActiveSheet.Range("A1").Value = "今月の集計"
End Sub

テンプレートシートをコピーし、
メソッド「Copy」「Name」「Value」で月次レポートを自動作成。
定型業務の省力化に最適です。


③ ファイルを一括保存して閉じる

Sub SaveAndCloseAll()
    Dim wb As Workbook
    For Each wb In Workbooks
        wb.Save
        wb.Close
    Next wb
End Sub

複数のExcelブックをまとめて保存&閉じるマクロ。
SaveCloseメソッドを併用する定番パターンです。


④ 指定時間ごとにマクロを実行

Sub AutoRun()
    Application.OnTime Now + TimeValue("0:10:00"), "AutoRun"
    Call RefreshData
End Sub

10分ごとに「RefreshData」マクロを実行するスケジュールタスクです。
OnTimeメソッドを使うことで、タイマーのような動作を実現できます。




✅ メソッドの基本構文と実行順序

VBAでメソッドを使う際の基本構文は非常にシンプルです。

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

例:

Range("A1").Copy Range("B1")

複数の操作を順番に行う場合は、「With」構文でまとめると見やすくなります。

With Range("A1:A10")
    .ClearContents
    .Interior.Color = vbYellow
    .Copy Range("B1")
End With

このように書くと、同一オブジェクトへのメソッド呼び出しが簡潔になり、処理速度も若干向上します。


✅ メソッドを調べる3つの便利機能(初心者必須)

VBA初心者の多くが「どんなメソッドがあるか分からない」と悩みますが、
VBAにはそれを簡単に確認できる機能が標準搭載されています。


① オブジェクトブラウザ(F2)

VBEで F2キー を押すと「オブジェクトブラウザ」が開き、
すべてのオブジェクトとメソッド一覧を確認できます。

検索欄に「Range」などを入力すれば、対応するメソッド一覧を即座に確認可能。
初学者には最強の“辞書機能”です。


② IntelliSense(入力補完)

コード入力時に「.(ドット)」を打つと、
そのオブジェクトに使えるメソッド一覧が自動的に表示されます。

例:

Range("A1").

この時点で候補一覧(Copy、Clear、Selectなど)が出てくるため、
手打ちよりもミスを防ぎながら学習できます。


③ マクロの記録機能

Excelの「開発」タブ →「マクロの記録」で操作を記録し、
生成されたコードを確認すれば、どのメソッドが使われているかがわかります。
GUI操作→VBAコードの変換ツールとして、非常に有効です。


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

  1. 動詞として捉える
    Clear=消す、Copy=コピーする、Protect=保護する。
    英単語の意味で覚えると自然に使えるようになります。
  2. 同系統のメソッドを比較して覚える
    Clear / ClearContents / ClearFormats の違いなどを並べて覚えると混乱しません。
  3. 「With」構文で整理する
    同じオブジェクトに複数メソッドを使う場合、可読性と速度が向上します。
  4. 組み合わせて使う
    メソッド同士、またはプロパティと組み合わせると、より強力な処理が可能。
  5. エラー処理を加える
    DeleteやCloseなど、破壊的操作を行うメソッドにはOn Error Resume Nextを併用すると安全です。

■ まとめ:メソッドを理解すればExcel操作を完全自動化できる

  • メソッドとは、オブジェクトに動作をさせる命令。
  • Range、Worksheet、Workbook、Applicationの4階層を意識して整理する。
  • ClearCopySaveCloseActivateProtectなどは特に頻出。
  • 「プロパティ=情報」「メソッド=動作」と区別して覚える。
  • オブジェクトブラウザやIntelliSenseで簡単に一覧を確認できる。
  • 複数のメソッドを組み合わせることで、業務効率を劇的に改善できる。

メソッドを自在に使いこなせるようになると、Excel操作はすべて“自動で動く世界”になります。
VBAの学習で最初に壁となるのがこの「メソッド理解」ですが、一度構造を掴めば、どんな処理でも思い通りに組み立てられます。
今日からぜひ、実際に打ちながらメソッドを覚えていきましょう。

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