生成AIへExcelのVBAマクロを頼むときは、入力する場所、出力する場所、変更しない範囲を先に決めます。返ってきたコードを業務の原本ですぐ動かさず、少数の架空データを入れた別のブックで確認してください。コードの意味を判断できない箇所は、分かる担当者へ確認します。
この記事はデスクトップ版ExcelでVBAを検討する人向けの依頼・確認例です。生成AIやExcelで実際に試した結果ではありません。掲載コードも未実行の説明用サンプルです。画面や操作は利用するExcelの環境と組織の設定で確認してください。
VBAが必要な作業かを決める
単純な合計なら、まずExcelの関数で済むかを検討します。繰り返す操作がある場合も、標準機能で実現できるかを先に確認してください。MicrosoftのVBA入門も、プログラミングを始める前に組み込みの機能を検討するよう説明しています。[1]
VBAはOfficeのオブジェクトを操作する言語です。セルの値や書式を変えたり、保存などの動作を指示したりできます。[1] 合計を出すだけの依頼に、保存や削除の処理を足さないことが大切です。
架空の表で入力と期待値を固定する
今回は「練習」という名前のシートで、B2からB4の数値を合計し、B5へ出すだけの例とします。行の追加、並べ替え、ファイル保存、他のブックの操作は依頼しません。
| セル | 架空の値・役割 |
|---|---|
| B2 | 100 |
| B3 | 200 |
| B4 | 300 |
| B5 | 合計の出力先。期待値は600 |
入力3セルと出力1セルを明示すると、何が変わればよいかを照合できます。この600は算術で求めた期待値で、生成AIの成功結果ではありません。
生成AIへ禁止する操作も伝える
デスクトップ版ExcelのVBA例を提案してください。対象はこのブックの「練習」シートです。B2:B4の数値を合計し、B5へ出すだけにします。ファイルの保存、削除、外部通信、メール送信、他ブックの変更は行いません。コードと各行の説明、実行前に必要な確認を示してください。入力は架空の100、200、300です。
返答では、対象シートが固定されているか、意図しないファイルや外部サービスへ触れていないかを読みます。コメントに「安全」と書かれているだけで判断せず、実際に呼び出す処理と変更先を確認してください。
短いコードでも原本では動かさない
次は、本稿が説明のために記した未実行の例です。生成AIが実際に返したコードではありません。「練習」シートを持つコピーでの確認を想定しており、業務への適用や動作を保証しません。
Option Explicit
Sub DemoTotal()
Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets("練習")
ws.Range("B5").Value = Application.WorksheetFunction.Sum(ws.Range("B2:B4"))
End SubMicrosoftの入門では、開発タブからVisual Basic Editorやマクロの操作へ進む方法、マクロの記録、デバッグを説明しています。[1] エディターの操作やコードの置き場所が分からなければ、公式手順を確認してから進めます。生成AIの指示だけで組織の制限を回避しないでください。
動かないからといって、すべてのマクロを無条件で許可しません。組織のルール、コードの内容、配布元を確認し、必要なら管理者へ相談します。マクロを保存する場合も、対応する形式と保管の条件を利用環境で確認してください。[1]
結果と変更範囲を読み戻す
コピー上で実行する際は、B5が600になるかだけでなく、入力や他のシートが意図せず変わっていないかを確かめます。空欄、文字列、エラー値などはこの3数値とは別の条件として扱い、必要な入力を追加で確認してください。
エラーが出たら、メッセージ、止まった行、使用環境を記録します。顧客名や社内情報をそのまま生成AIへ送らず、再現に必要な架空データへ置き換えて相談します。修正したコードは同じ入力で改めて確認してください。
小さな作業を指定し、コードと結果の両方を確かめます。1例が動いたことと、業務で使えることは別です。対象、コード、確認結果、未確認の入力を残し、原本へ適用する前に権限のある担当者が判断してください。
参考資料
[1] Microsoft Learn:Office VBAの基礎知識。標準機能の検討、オブジェクト操作、開発タブ、セキュリティ、マクロの記録とデバッグの説明を参照。
資料確認日:2026年10月27日。Excel・生成AIによるコード実行、所要時間や業務効果の測定は未実施です。
