AIが書いたVBAマクロを実行する前の確認手順|バックアップ・テスト用コピー・元に戻せない処理
生成AIが書いたExcelのVBAマクロを実行する前に、マクロの設定・ファイルの出どころ・元に戻せない処理を確かめる手順をまとめます。テスト用のコピーで少ない行から試す方法と、AIへの確認の頼み方も紹介します。
目次
この記事でわかること
- AIが書いたVBAマクロを、実行する前に確かめる理由
- マクロの設定と、インターネットから来たファイルの扱い
- テスト用コピーで試す手順と、元に戻せない処理の見つけ方
- AIに確認を頼むときの頼み方
結論から書くと、AIが書いたマクロは、元のファイルでいきなり実行しません。テスト用コピーを作り、削除や保存などの元に戻せない処理を探して読み、少ない行で試してから使います。
この記事は、Microsoftの公式の説明をもとにまとめた手順です。記事の中のVBAの例は読むためのもので、この記事の検証では実行していません。
実行する前の確認が要る理由
マクロは、Excelの操作をまとめて自動で行います。便利な一方で、間違ったマクロも一度にまとめて動きます。
Microsoftの説明では、ExcelのUndoメソッドはVisual Basicの命令を元に戻すのには使えないとされています。マクロが行った削除や上書きを、後から「元に戻す」で取り消せるとは考えない方が安全です。
また、Microsoftは、VBAマクロが悪意のある人によってマルウェアを広げる一般的な方法になっていると説明しています。AIが書いたマクロに悪意は無くても、出どころのわからないファイルのマクロと同じように、中身を読んでから動かす習慣が役に立ちます。
AIが書いたコードとの付き合い方の全体はExcelをAIで自動化する方法|関数・マクロ・データ整形の頼み方と注意点で紹介しています。この記事は、実行する前のチェックリストに絞ります。
マクロの設定を確かめる
マクロの設定は、Excelの「ファイル」→「オプション」→「トラスト センター」→「トラスト センターの設定」→「マクロの設定」にあります。Microsoftの説明では、既定は「通知を使用してすべてのマクロを無効にする」で、「すべてのマクロを有効にする」は推奨されていません。
AIが書いたマクロを試すために、設定そのものを「すべて有効」に変える必要はありません。既定の設定では、マクロのあるファイルを開くと信頼バーが表示され、そこで「コンテンツを有効にする」を選ぶと、そのファイルのマクロが動きます。Microsoftの説明では、こうして有効にしたファイルは信頼済みのドキュメントとして扱われ、次からもマクロが動くようになります。これも、元のファイルではなくテスト用コピーで試す理由の1つです。
インターネットから取得したファイルには、別の決まりがあります。Windowsのパソコンでは、メールの添付ファイルやダウンロードしたファイルのマクロは、Officeで既定でブロックされ、セキュリティのリスクを知らせる表示が出ます。送り主と中身を信頼できる場合だけ、ファイルを右クリックして「プロパティ」→「全般」の「ブロック解除」を選びます。
確認1: テスト用コピーを作る
マクロを試す前に、元のファイルを複製して、テスト用コピーを作ります。名前は、ひと目で区別できるものにします(例: 売上_テスト用コピー.xlsm)。
- 試すのは、必ずテスト用コピーだけにします
- 元のファイルは閉じておき、マクロから触られないようにします
- 結果が正しかったら、同じマクロを、もう一度新しいコピーで試してから本番のファイルに使います
マクロの中に保存の命令があると、試した結果がそのままファイルに書き込まれます。Microsoftの説明では、Workbook.Saveは指定したブックへの変更を保存する命令で、開いているすべてのブックを保存する例も載っています。テスト用コピーで試せば、元のファイルは変わりません。
確認2: 元に戻せない処理を探す
AIが書いたコードを、実行する前に読みます。特に、次の命令がある行を探します。
| 命令 | 何をする | 試す前 |
|---|---|---|
| Kill | ファイル削除 | 対象を確認 |
| .Delete | セルや行を削除 | コピーで試す |
| .Save | 変更を保存 | 行を外す |
Microsoftの説明では、Killはディスクからファイルを削除する命令で、Windowsでは「*」などのワイルドカードで複数のファイルを指定できます。Range.Deleteはセルなどを削除し、残りのセルを上や左へずらします。
次は、元に戻せない処理を含むマクロの例です。
【用途】元に戻せない処理を含むマクロの例を読む /【実行場所】VBAの画面(読むだけ) /【状態変更】なし(例を示すだけ。この記事の検証では実行していません)
Sub CleanUpSales()
' データ シートの2行目から100行目を削除する(元に戻せない)
Worksheets("データ").Rows("2:100").Delete
' 作業中のブックを上書き保存する(元に戻せない)
ThisWorkbook.Save
End Sub
この例では、Deleteの行で消える範囲と、Saveの行で上書きされるファイルを確かめます。試すときは、Saveの行を外したテスト用コピーで動かし、結果を目で確かめます。外したSaveの行は、結果に納得してから戻します。
確認3: 少ない行で試す
テスト用コピーのデータを、最初は数行から数十行に減らして試します。結果を目で確かめやすく、間違いがあっても気づきやすくなります。
- 試す前と後で、行の数や合計の値を控えておき、想定どおりに変わったかを比べます
- 結果がおかしければ、マクロを直す前にテスト用コピーを捨てて、新しいコピーで試し直します
- 少ない行で正しく動いたら、行を増やしたコピーで、もう一度試します
数字の確かめ方はAIの出力をどう確認するか|誤りが出やすい場所と、確認を作業に組み込む方法の考え方が、そのまま使えます。
AIに確認を頼む
コードを読むのが難しいときは、AI自身に、元に戻せない処理の場所と、触るファイルやシートを説明させます。
【用途】マクロの中の元に戻せない処理を、AIに一覧にさせる /【実行場所】生成AIに頼む文 /【状態変更】なし(説明を受け取るだけ)
次のVBAマクロを、まだ実行していません。実行する前に確認したいです。
- ファイルの削除・セルや行の削除・上書き保存など、元に戻せない処理がある行を、行ごとに一覧にしてください
- それぞれの行が、どのファイル・どのシート・どの範囲を対象にしているかを説明してください
- 保存の行を外し、試すときに確認のメッセージを出す形にした案も書いてください
実行や保存の指示は出さず、説明と案を示したところで止まってください。
AIの説明は、そのまま信じずに、コードの該当する行と見比べます。説明と行が合わないときは、試すのをやめて、もう一度たずねます。
AIに任せない方がよい判断
- 本番のファイルで実行するかどうか: テスト用コピーでの結果を自分で見て、決めます
- マクロの設定を変えるかどうか: 「すべてのマクロを有効にする」は、Microsoftも推奨していません
- 出どころのわからないファイルのブロックを解除するかどうか: 送り主と中身を信頼できるかは、自分で確かめます
マクロを使わずに、Claude CodeとPythonでExcelのグラフを作る方法はExcelのグラフを自動作成する手順|Claude CodeとPythonで範囲がずれない棒・折れ線グラフを作るで紹介しています。
つまずきやすいところ
- 元のファイルでいきなり試す: マクロが行った削除や保存は、元に戻せないことがあります
- 保存の行に気づかない: テストのつもりでも、結果がファイルに書き込まれます
- Killのワイルドカードを読み飛ばす: 「*」が入っていると、複数のファイルが対象になります
- マクロの設定を「すべて有効」にしたままにする: ほかのファイルのマクロまで、確認なしで動くようになります
- AIの説明だけで判断する: 説明とコードの行を、自分で見比べます
まとめ
- AIが書いたマクロは、元のファイルでいきなり実行しません
- マクロの設定は既定のままにし、テスト用コピーだけで有効にします
- テスト用コピーを作り、Kill・Delete・Saveなどの元に戻せない処理を探して読みます
- 少ない行で試し、前後の数を比べてから、本番のファイルに使います
- 本番で実行するか、設定やブロックを変えるかは、自分で決めます
よくある質問
AIが書いたVBAマクロは、そのまま実行してもよいですか?
おすすめしません。Microsoftの説明では、ExcelのUndoメソッドはVisual Basicの命令を元に戻すのには使えないとされています。実行する前に、元のファイルとは別のテスト用コピーを作り、元に戻せない処理が無いかを確かめます。
元に戻せない処理は、どう見つければよいですか?
コードの中で、ファイルを削除するKill、セルや行を削除するDelete、変更を保存するSaveなどの語を探します。見つけたら、何を対象にしているかを読み、わからなければAIに説明させてから試します。
マクロの設定を「すべてのマクロを有効にする」にしてもよいですか?
Microsoftはこの設定を推奨していません。既定の設定は、通知を使用してすべてのマクロを無効にするものです。AIが書いたマクロを試すときも、設定は変えずに、テスト用コピーだけで「コンテンツを有効にする」を選びます。
メールで受け取ったマクロ付きのファイルが動きません。なぜですか?
Windowsのパソコンでは、インターネットから取得したファイルのマクロは、Officeで既定でブロックされます。送り主と中身を信頼できる場合だけ、ファイルのプロパティでブロックを解除します。
AIに「安全なマクロにして」と頼めば、確認は要りませんか?
要ります。AIの答えにも誤りが入ることがあります。元に戻せない処理の行と、触るファイルとシートの一覧を出させ、自分で読んで確かめてから、テスト用コピーで試します。