ExcelVBAでマクロを作成していると、「Clear」「Copy」「Delete」などのメソッド(Method)という言葉をよく目にします。
しかし、プロパティとの違いや使い方が分からないまま、なんとなく使っている人も多いのではないでしょうか。
メソッドはVBAの「動作命令」にあたるもので、これを理解すればExcelのあらゆる操作をコードで再現できるようになります。
この記事では、VBAメソッドの基本概念から主要な一覧、実務での応用テクニックまでを体系的に解説します。
目次
- ✅ そもそも「メソッド」とは何か?
- ・メソッドとは動作命令のこと
- ✅ VBAでよく使うメソッド一覧(オブジェクト別)
- 【1】Range(セル・範囲)オブジェクトのメソッド
- 【2】Worksheet(シート)オブジェクトのメソッド
- 【3】Workbook(ブック)オブジェクトのメソッド
- 【4】Application(Excel全体)オブジェクトのメソッド
- 【5】Chart(グラフ)オブジェクトのメソッド
- ✅ メソッドを使った代表的な実務シナリオ
- ① データを整形してコピー・貼り付け
- ② 月次報告書を自動作成(シート操作)
- ③ ファイルを一括保存して閉じる
- ④ 指定時間ごとにマクロを実行
- ✅ メソッドの基本構文と実行順序
- ✅ メソッドを調べる3つの便利機能(初心者必須)
- ① オブジェクトブラウザ(F2)
- ② IntelliSense(入力補完)
- ③ マクロの記録機能
- ✅ 実務でメソッドを使いこなす5つのコツ
- ■ まとめ:メソッドを理解すればExcel操作を完全自動化できる
✅ そもそも「メソッド」とは何か?
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
→ 編集 → Save
→ Close
という流れで使われます。
これをループ処理に組み合わせると、数十ファイルの自動処理も可能です。
参考:【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" |
Quit | Excelを終了 | 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ブックをまとめて保存&閉じるマクロ。
Save
とClose
メソッドを併用する定番パターンです。
④ 指定時間ごとにマクロを実行
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つのコツ
- 動詞として捉える
Clear=消す、Copy=コピーする、Protect=保護する。
英単語の意味で覚えると自然に使えるようになります。 - 同系統のメソッドを比較して覚える
Clear / ClearContents / ClearFormats の違いなどを並べて覚えると混乱しません。 - 「With」構文で整理する
同じオブジェクトに複数メソッドを使う場合、可読性と速度が向上します。 - 組み合わせて使う
メソッド同士、またはプロパティと組み合わせると、より強力な処理が可能。 - エラー処理を加える
DeleteやCloseなど、破壊的操作を行うメソッドにはOn Error Resume Next
を併用すると安全です。
■ まとめ:メソッドを理解すればExcel操作を完全自動化できる
- メソッドとは、オブジェクトに動作をさせる命令。
- Range、Worksheet、Workbook、Applicationの4階層を意識して整理する。
Clear
・Copy
・Save
・Close
・Activate
・Protect
などは特に頻出。- 「プロパティ=情報」「メソッド=動作」と区別して覚える。
- オブジェクトブラウザやIntelliSenseで簡単に一覧を確認できる。
- 複数のメソッドを組み合わせることで、業務効率を劇的に改善できる。
メソッドを自在に使いこなせるようになると、Excel操作はすべて“自動で動く世界”になります。
VBAの学習で最初に壁となるのがこの「メソッド理解」ですが、一度構造を掴めば、どんな処理でも思い通りに組み立てられます。
今日からぜひ、実際に打ちながらメソッドを覚えていきましょう。