AI技術の進歩により、業務効率化に欠かせないマクロをAIで生成可能となった。適切なプロンプト(指示文)の書き方やVBAコード生成の流れ、エラー時のデバッグ方法などをまとめた。
目次
マクロを使った作業の自動化は業務効率化に欠かせない。従来はマクロの作成や処理を指定するためにVBA(Visual Basic for Applications)の知識が不可欠だったが、生成AIの発達により、高度なプログラミング知識がなくても自然言語による指示(プロンプト)でVBAコードを生成し、複雑なマクロを作成できるようになった。
本記事では、生成AIを利用したマクロ自動化のためのプロンプトの書き方や、実用的なプロンプトの例文、エラー時の対処法、マクロ生成に使用したプロンプトと生成されたVBAコードの管理について解説する。
マクロ自動化におけるプロンプトの基礎
ChatGPTなどの生成AIを活用することで、マクロを効率よく作成できる。まずはプロンプトの基礎知識から見てみよう。
■生成AIのプロンプトとは?コマンドプロンプトとの違い
プロンプトとは、生成AIに与える指示文を指す。マクロの自動化では生成AIに対して明確で構造化されたプロンプトを書くことが重要だ。
なお、このプロンプトは、マクロで扱うコマンドプロンプト(WindowsのCUI環境)とは異なるため注意したい。
【コマンドプロンプト】
・Windowsのシステム操作用コマンドライン
・決められたコマンド構文で実行
・ファイル操作やシステム管理が主目的
【マクロ作成を指示するプロンプト】
・生成AIへの自然言語による指示
・目的や条件を日本語で詳細に記述
・VBAコードやマクロロジックの自動生成
■プロンプトを使ったVBAコード生成の流れ
生成AIに指示を出すことで詳しいコーディング知識がなくてもマクロのためのVBAコードを作成できる。以下の手順で進めよう。
1.要件整理フェーズ
何を自動化したいかを明確化し、プロンプト内に含める。「あなたは優秀なプログラマーです」と言ったロール(役割)設定が有効。
【基本のプロンプトテンプレート】
あなたは優秀なVBAプログラマーです。以下の要件でExcelマクロを作成してください:
#目的:○○を自動化したい
#対象シート:シート名を明記
#処理内容:
- ××から△△を抽出
- 条件に応じて▲▲を実行
- 結果を××に出力
#制約条件:
- エラーハンドリングを含める
- 処理完了時にメッセージ表示
2.コード生成・検証フェーズ
プロンプトを入力すると、VBAコードが数秒で出力される。生成されたコードは必ず内容を確認し、不明点があれば追加でAIに質問しよう。
3.実装フェーズ
検証済みのコードを以下の手順で実装する。
・Excelの「開発」タブから「Visual Basic」を開く
・「挿入」→「標準モジュール」を選択
・生成されたコードを貼り付けて保存
・「マクロ」から実行して動作確認
動作確認でエラーが発生した場合は、後述の実行時エラー対処用のプロンプトを活用し、デバッグしよう。
実用的なプロンプト例
ここでは、実際の業務で使える具体的なプロンプト例(Excel、Access)を紹介する。
■Excelのマクロ生成プロンプト
マクロの使用頻度がもっとも高いExcelでのプロンプトは以下のように書くと良い。
【データ集計マクロのプロンプト】
あなたは優秀なVBAプログラマーです。以下のExcelマクロを作成してください:
#目的:売上データの月次集計レポート作成
#対象:「売上データ」シート(A1から始まる表)
#処理内容:
- 日付列(A列)で今月のデータを抽出
- 営業担当者別(B列)の売上合計を計算
- 「月次レポート」シートに結果を出力
- 売上上位3名をハイライト表示
#制約:エラーハンドリング、処理完了メッセージ付き
【条件付き書式設定のプロンプト】
Excelの「成績管理」シートA1:E100の範囲で、以下の条件付き書式を設定するVBAを作成してください:
- D列(得点)が80以上:緑色背景
- D列が60-79:黄色背景
- D列が60未満:赤色背景
エラーハンドリングも含めてください。
■Accessでマクロを実行するプロンプト
Accessでのデータ処理の自動化も、生成AIに指示することで簡単に実現できる。
【データインポートのプロンプト】
Microsoft AccessのVBAで以下の機能を持つマクロを作成してください:
#機能:CSVファイルの自動インポート
#詳細:
- C:\Data\customers.csvを「顧客マスタ」テーブルにインポート
- インポート前に既存データをバックアップ
- 重複レコードがある場合は確認メッセージを表示
- インポート完了後、件数を報告
#注意点:
- エラーハンドリングとログ出力を含める
- CSVの区切り文字や文字コードの違いに対応する処理も含める
- 文字コード変換(UTF-8→Shift-JIS等)が必要な場合は外部ツールの使用も検討
【レポート出力のプロンプト】
Accessで「月次売上レポート」をPDFで自動出力するVBAマクロを作成してください。
出力先:C:\Reports\月次売上_[年月日].pdf
条件:当月データのみを対象とし、出力完了時にメッセージ表示
マクロと他の自動化ツールとの連携をプロンプトで指示する
実際のマクロ使用環境では、単体のソフトウェアだけでなく、複数の自動化ツールと連携しての活用が行われる。
■マクロとTeraTermやBATファイルの連携
ネットワーク機器の管理で使われるTeraTerm(テラターム)や、複数コマンドを一括実行する際のBATファイル(バッチファイル)など、他のツールとの連携を指示することも可能だ。
【Tera Term マクロ生成プロンプト】
以下の条件でTera Term のTTLスクリプトを作成してください:
- 192.168.1.1にTelnet接続(ポート23)
- ユーザー名:admin、パスワード:admin123でログイン
- “show running-config”コマンドを実行
- 結果をconfig_backup.txtに保存
- 接続を切断
環境依存の注意点も教えてください。
※注意:実際の運用では認証情報の暗号化や別ファイルでの管理が必要です。
【BATファイル連携プロンプト】
以下の処理を順次実行するWindowsバッチファイルを作成してください:
- Tera Term マクロ実行(network_backup.ttl)
- Excelマクロ実行(レポート生成.xlsm)
- 結果ファイルを日付フォルダに移動
- 処理完了をメール通知
エラー時の処理も含めてください。
※注意:認証情報や機密データを含む場合は、適切なセキュリティ対策を講じてください。
■ExcelマクロとRPAツールとのハイブリッド運用
RPA(Robotic Process Automation)ツールを導入している場合は、連携指示をプロンプトに含めてExcelマクロとの連携運用が可能となる。
【マクロとRPAそれぞれの役割】
・RPAツール:Webスクレイピング、GUI操作、システム間連携
・Excelマクロ:データ加工、複雑な計算、レポート生成
【ハイブリッド運用プロンプト例(想定例)】
以下のワークフローを想定したExcelマクロを作成してください:
#前処理:RPAツールがWebからダウンロードしたCSVファイル(data_raw.csv)がC:\Tempに保存される
#Excel処理:
- CSVを読み込み、データクレンジング
- 売上分析(前年同月比、成長率計算)
- グラフ付きレポートを生成
- C:\Output\に「売上分析_[日付].xlsx」で保存
#後処理:RPAがファイルをメール添付で送信







DIME MAGAZINE











