Excelでマクロを使い始めたばかりの方にとって、「このマクロはどうやって動かすの?」という疑問は非常に多いものです。
実はマクロには、「自分で操作して動かす」手動実行と、「何かのタイミングで自動的に動く」自動実行の2つの使い方があります。
この違いをしっかり理解することで、「クリックしたら動くようにしたい」「開いたときにすぐ動くようにしたい」といったニーズに柔軟に対応できるようになります。
手動実行のマクロ:基本の使い方
マクロを記録したり作成した場合、まずは手動実行から始めるのが基本です。
たとえば次のようなマクロがあるとします。
Sub AddDate()
Range("A1").Value = Date
End Sub
これは、A1セルに今日の日付を入力するだけのマクロです。実行するには、VBEでこのマクロを選んで「▶実行」ボタンを押すか、Excelの「マクロ」画面から選択して「実行」ボタンを押します。
このように、自分の操作でマクロを動かすのが「手動実行」です。
手動実行は、次のような場面で向いています。
- 必要なときだけ処理したい場合
- 内容を確認しながら段階的に処理したい場合
- 他のマクロと組み合わせて使いたい場合
自動実行のマクロ:イベントで動かす
一方、自動実行は「何かのタイミングで勝手に動くマクロ」です。
たとえば、Excelファイルを開いた瞬間に何か処理をしたいときは、「Workbook_Open」イベントにマクロを記載します。
Private Sub Workbook_Open()
MsgBox "ファイルが開かれました"
End Sub
これは「このブックが開かれたときに自動実行する」という意味のマクロです。
実行場所は、標準モジュールではなく「ThisWorkbook」に記載する必要があります。
自動実行は他にも、次のようなタイミングで設定することが可能です。
- シートを選択したとき:
Worksheet_Activate - セルを変更したとき:
Worksheet_Change - ブックを保存するとき:
Workbook_BeforeSave - ブックを閉じるとき:
Workbook_BeforeClose - 新しいシートが挿入されたとき:
Workbook_NewSheet
これらを使うことで、さまざまな業務に応じたタイミングでマクロを自動実行する仕組みが作れます。
応用例
- ファイルを開いたときに、更新履歴の確認ダイアログを表示する
- セルの入力が完了したら、自動で書式を整える
- シートを選択したら、注意事項をポップアップで表示する
- ブックを閉じる直前に、バックアップを保存する
このように、処理を意識せずに「いつのまにか動いている」状態にできるのが、自動実行の強みです。
実装するメリットと注意点
自動実行のメリット
- 利用者がボタンを押す手間を省ける
- 操作ミスを防げる(たとえば保存漏れなど)
- 作業の流れを自動化しやすい
手動実行のメリット
- 必要なときだけ動かせるので安全
- エラーが出てもすぐ気づける
- デバッグ(動作確認)がしやすい
一方で、自動実行は想定外のタイミングで動くこともあるため、次のような注意が必要です。
- 実行の対象が本当にそのタイミングで良いか確認する
- 実行中の処理にエラー対策を加える(
On Errorなど) - イベントマクロは、標準モジュールではなく所定のモジュールに記載する必要がある
まとめ
マクロには「自分で動かす手動実行」と「条件に応じて勝手に動く自動実行」の2つがあります。使い分けを知っておくことで、より自然で便利なExcel業務が実現できます。
- 手動実行は「VBE」や「マクロ一覧」から動かす
- 自動実行は「Workbook_Open」などイベントに対応
- 自動実行は便利な反面、動作タイミングに注意が必要
- 応用次第で「気づかれずに便利に動く」業務ツールが作れる
マクロを「どう動かすか」まで設計することで、ただのツールではなく、実務に役立つしくみとして活用できるようになります。
業務フローに合わせて、最適なタイミングで処理が動くように設計していきましょう。
