Excel業務では「特定のタイミングで自動的に処理を実行したい」というニーズが多く存在します。例えば、ブックを開いた時に初期設定を行いたい、セルが変更されたら自動計算したい、シート切り替え時にメッセージを出したいなど、手動では煩雑な作業を“自動で動く仕組み”にしておくことで、作業ミスを防ぎ、業務全体の効率を大きく高めることができます。
その中心となるのが、WorkbookイベントやWorksheetイベントを使ったVBAのイベント処理です。しかし、イベントごとのトリガーや引数、構文を覚えるのは大変で、適切に動作させるのが難しいと感じる人も多いはずです。
そこで役立つのがChatGPTによるイベント処理コードの自動作成です。ChatGPTに「どんな動作をしたいか」を日本語の文章で伝えるだけで、Workbook_Open、Workbook_BeforeClose、Worksheet_Change、Worksheet_SelectionChange などのイベントに合わせた正確なコードを生成できます。初心者でも実務レベルのイベント処理が簡単に作れ、複雑な自動化も短時間で実装可能です。
この記事では、ChatGPTを活用してイベント処理のVBAを生成する手順、プロンプト例、背景解説、活用シナリオ、注意点を詳しく紹介します。
目次
- ✅ ChatGPTでWorkbookイベントを作成する方法
- ・Workbookイベントとは?
- ✅ ChatGPTでWorksheetイベントを作成する方法
- ・Worksheetイベントとは?
- ✅ ChatGPTにイベント処理を作成させるためのプロンプト設計
- ・最も使いやすい基本プロンプト
- ・処理内容を追加すると精度が上がる
- ・Worksheet_Change の高度な依頼例
- ✅ ChatGPTでイベント処理VBAを作成するステップ
- ・ステップ①:動かしたいタイミングを伝える
- ・ステップ②:実行したい処理内容を明確にする
- ・ステップ③:対象範囲・条件などを具体化する
- ・ステップ④:ChatGPTに「複雑な処理を組み合わせたい」と伝える
- ✅ ChatGPTが生成できるWorkbookイベント処理の実例
- ・“開いた瞬間に初期設定を行う”
- ・“閉じる前に保存確認を行う”
- ・“新規シート追加時にテンプレート化”
- ✅ ChatGPTが生成できるWorksheetイベント処理の実例
- ・セルが変更されたら自動チェックする
- ・選択セルが変わったら補助表示
- ・ダブルクリックしたら別シートにジャンプ
- ✅ ChatGPTでイベント処理を“安全に”利用するための注意点
- ・無限ループ発生に注意(特にChangeイベント)
- ・エラー処理を追加させる
- ・複数条件の組み合わせはChatGPTに任せる
- ✅ ChatGPT × イベント処理 活用シナリオ
- ・業務シナリオ①:入力チェックの自動化
- ・業務シナリオ②:売上管理シートの自動更新
- ・業務シナリオ③:ログ取得の自動化
- ✅ まとめ:ChatGPTを使えばイベント処理VBAは“誰でも作れる”
✅ ChatGPTでWorkbookイベントを作成する方法
・Workbookイベントとは?
Workbookイベントとは、ブック全体に関わる操作が行われたときに自動的に実行される処理です。
例:
- ブックを開いたとき(Open)
- ブックを閉じるとき(BeforeClose)
- 新しいシートを追加したとき(NewSheet)
- ブックを保存するとき(BeforeSave)
これらのイベントは “ThisWorkbook” モジュール内で記述します。
✅ ChatGPTでWorksheetイベントを作成する方法
・Worksheetイベントとは?
Worksheetイベントは、シートの操作が行われたときに自動で動く処理です。
例:
- セルが変更されたとき(Change)
- 選択セルが変わったとき(SelectionChange)
- ダブルクリックされたとき(BeforeDoubleClick)
- 右クリックされたとき(BeforeRightClick)
こちらは「対象のシートのコードページ」に記述します。
参考:【VBA】Worksheet.Activate が実行されない原因と解決方法
✅ ChatGPTにイベント処理を作成させるためのプロンプト設計
・最も使いやすい基本プロンプト
Workbook_Openで、ブックを開いたらメッセージを表示するVBAを作成してください。
ChatGPTは以下のようなコードを生成します。
Private Sub Workbook_Open()
MsgBox "ブックを開きました"
End Sub
・処理内容を追加すると精度が上がる
Workbook_BeforeCloseイベントで、保存確認を行い、
ユーザーが「いいえ」を選んだ場合はキャンセルされるコードを作ってください。
ChatGPTは条件分岐付きのイベントを生成できます。
・Worksheet_Change の高度な依頼例
Sheet1でA2:A100の値が変更されたら、
変更があった行の背景色を黄色に変更するイベントコードを作ってください。
ChatGPTは対象範囲の判定ロジックを含んだコードを生成します。
✅ ChatGPTでイベント処理VBAを作成するステップ
・ステップ①:動かしたいタイミングを伝える
「開いたら」「閉じたら」「セル変更時」など、イベントの種類を必ず指定します。
・ステップ②:実行したい処理内容を明確にする
例:
- メッセージを出す
- 別シートを更新する
- セルの色を変更する
- 自動計算を行う
文章で十分伝わります。
・ステップ③:対象範囲・条件などを具体化する
例:
- A列
- 数値が入力されたとき
- 空白になったとき
・ステップ④:ChatGPTに「複雑な処理を組み合わせたい」と伝える
Changeイベントの中で、
・入力チェック
・空白禁止
・上書き時は警告
の3つを組み合わせたコードを作ってください。
ChatGPTは複合ロジックにも対応できます。
参考:ChatGPTで高速化VBAを作成させる手順|重いマクロを劇的に速くするAI活用術
✅ ChatGPTが生成できるWorkbookイベント処理の実例
・“開いた瞬間に初期設定を行う”
- シート保護解除
- 日付の自動入力
- グラフの更新
・“閉じる前に保存確認を行う”
- キャンセルが可能
- 必要ならログを残す
・“新規シート追加時にテンプレート化”
Private Sub Workbook_NewSheet(ByVal Sh As Object)
Sh.Range("A1").Value = "作成日:" & Date
End Sub
ChatGPTに依頼すると、テンプレートの作り込みも自動化できます。
参考:【VBA】ファイルを選択して開く方法|Application.GetOpenFilenameとWorkbooks.Openの実践例
✅ ChatGPTが生成できるWorksheetイベント処理の実例
・セルが変更されたら自動チェックする
If Not Intersect(Target, Range("A2:A100")) Is Nothing Then
If Target.Value = "" Then
MsgBox "空白は禁止です"
End If
End If
・選択セルが変わったら補助表示
- 入力規則の説明
- ガイドラインの提示
- 参照セルハイライト
・ダブルクリックしたら別シートにジャンプ
If Target.Column = 3 Then
Sheets("明細").Activate
End If
✅ ChatGPTでイベント処理を“安全に”利用するための注意点
・無限ループ発生に注意(特にChangeイベント)
セルの変更イベント内で再度セルを変更すると無限ループが起こります。
ChatGPTへの依頼例:
Changeイベントでセルを書き換える際、
無限ループが起きないようApplication.EnableEventsを使用してください。
・エラー処理を追加させる
On Error GoTo ErrHandler
(処理内容)
Exit Sub
ErrHandler:
MsgBox "エラーが発生しました:" & Err.Description
・複数条件の組み合わせはChatGPTに任せる
複雑な条件分岐はAIに全て書かせたほうが安全です。
✅ ChatGPT × イベント処理 活用シナリオ
・業務シナリオ①:入力チェックの自動化
- 空白禁止
- 日付形式統一
- 文字数チェック
→ 手動チェックの時間を大幅削減。
・業務シナリオ②:売上管理シートの自動更新
- ブックを開くと最新日付にジャンプ
- セル変更時に粗利計算
- 行追加時に番号を自動採番
・業務シナリオ③:ログ取得の自動化
- いつ誰が入力したか
- どのセルを変更したか
ChatGPTならログシステムも簡単に作れます。
✅ まとめ:ChatGPTを使えばイベント処理VBAは“誰でも作れる”
最後に、本記事のポイントを整理します。
- ChatGPTはWorkbook / Worksheetイベントを自然文から正確に生成できる
- イベントの種類・動作内容・対象セルを伝えるだけで自動化VBAが完成する
- Change/SelectionChange/Open/BeforeClose など複雑なイベントにも対応
- 無限ループ対策やエラー処理の追加もChatGPTに依頼可能
- 業務では入力チェック、ログ記録、売上管理、自動更新など多くのシナリオで有効
- ChatGPTを使えば、難しいイベント処理も短時間で安全に実装できる
ChatGPTを活用すれば、イベント駆動型のVBAも簡単に作成でき、Excel業務の自動化レベルが大幅に向上します。ぜひイベント処理を取り入れ、あなたのマクロ開発をさらに進化させてください。