ChatGPTに作らせたExcel VBAコードは安全?使う前に確認すべきポイント

AIのコードをそのまま使うのは不安

ChatGPTでExcel VBAを作れるようになると、作業スピードは一気に上がります。

ただ一方で、こんな不安を感じたことはないでしょうか。

  • 勝手にファイルを削除しない?

  • 自分が想定していない場所を触っていない?

  • 本当にこのコード、今の環境で安全?

特にVBAは「一度実行したら取り消せない処理」 が多いのが特徴です。

今回は、実際にChatGPTに作ってもらったファイル削除コードを確認したら、意図と違うファイルを削除する内容だったという体験を元に、AIが作ったVBAを使う前に、どこをどう確認すべきかを具体的に解説します。


実体験:ファイル削除コードを確認してヒヤッとした話

あるとき、次のような要望をChatGPTに投げました。

指定フォルダ内の古いファイルを削除するVBAを作ってください。

出てきたコードをパッと見た感じ、「それっぽい」「ちゃんと動きそう」に見えました。

でも、よく読んでみると問題がありました。

  • 削除対象のフォルダが想定と違う

  • 条件指定がなく、フォルダ内の全ファイルが対象

  • テスト用のフォルダを指定していない

もしそのまま実行していたら、本番データのファイルをまとめて削除していた可能性があります。

この経験から、「ChatGPTのVBAは便利だけど、必ず自分で確認する」という意識が強くなりました。


特に注意すべき処理

ここからは、ChatGPTが作ったVBAで特に危険になりやすい処理を具体的に説明します。


Kill(ファイル削除)

Kill は、指定したファイルを完全に削除する命令です。

  • ゴミ箱に入らない

  • 元に戻せない

  • パス指定を間違えると被害が大きい

ChatGPTが書いたコードで、

Kill "C:\Users\***\Documents\*.xlsx"

のような記述があったら要注意。

ChatGPTに作らせたExcel VBAコードは安全?使う前に確認すべきポイント

  • 本当にそのフォルダでいいか

  • ワイルドカード(*)で削除範囲が広すぎないか

  • テスト用フォルダになっているか

必ず目視で確認しましょう。

■■■スポンサーリンク■■■

Open / Close

Open はファイルを開く処理、

Close は閉じる処理です。

問題になりやすいのは、

  • Closeし忘れている

  • 間違ったファイルをOpenしている

  • 既存ファイルを上書き前提で開いている

特に Open ~ For Output は、既存ファイルを強制的に上書きします。

「読み込みのつもりだったのに、実は上書きしていた」という事故はよくあります。


フォルダ操作

MkDirRmDirDir などのフォルダ操作も要注意です。

  • フォルダを削除していないか

  • 想定外の階層を指定していないか

  • パスが固定書き(ハードコーディング)されていないか

ChatGPTは「環境差」までは考慮してくれないことが多いので、自分のPCでそのパスが本当に安全かを確認しましょう。


上書き保存

SaveSaveAs を使った処理も要チェックです。

  • 元ファイルを上書きしていないか

  • バックアップを取らずに保存していないか

  • ファイル名が固定されていないか

特に業務ファイルでは、「元に戻せない上書き」=事故になります。


チェックポイント一覧

Setされているオブジェクト

Set wb = Workbooks("sample.xlsx")

このような行では、

  • 本当にそのブック名で合っているか

  • 別ブックを参照していないか

を確認します。

オブジェクト指定ミスは、意図しないデータ破壊につながることがあります。


ループ条件

ForDo While の条件も重要です。

  • 無限ループになっていないか

  • 範囲が広すぎないか

  • 条件が逆になっていないか

削除処理がループ内にある場合、1回のミスが大量削除に直結します。


対象シート名

Set ws = Worksheets("Sheet1")

ここも必ず確認。

  • 本番用シート名になっていないか

  • テスト用シートを使っているか

「たまたま同名シートがあった」という事故も起こりがちです。


保存・削除処理

コードの中で、

  • Save

  • SaveAs

  • Kill

がどこで実行されているかを、必ず把握してから実行しましょう。

「思ったより早い段階で削除されていた」というケースもあります。


安全に使うコツ

テスト用ファイルで実行

いきなり本番ファイルで実行しない。

  • コピーしたテスト用ファイル

  • ダミーフォルダ

  • 仮のファイル名

これが鉄則です。


1行ずつ読む

VBAは上から順に実行されます。

  • どこで何をしているか

  • その行は何を変更するのか

「実行されたら何が起きるか」を、1行ずつイメージしながら読みます。


分からない行はChatGPTに質問

ここでChatGPTが再登場します。

例:

このVBAのこの行は何をしていますか?
削除処理はありますか?

AIに作らせたコードを、AIに解説させるのはかなり有効です。


まとめ

ChatGPTが作るExcel VBAは、非常に強力で便利です。

しかし、VBAは

  • ファイルを削除できる

  • 上書き保存できる

  • 元に戻せない操作が多い

という特徴があります。

だからこそ、「そのまま実行する」ではなく「確認しながら使う」という姿勢が重要です。

ChatGPTは「考えるのを助けてくれる相棒」であって、「責任を取ってくれる存在」ではありません。

  • 危険な処理は自分で確認する

  • テスト環境で試す

  • 分からない部分は質問する

この3つを守るだけで、ChatGPT×VBAは、初心者にとっても、実務で使える最強の武器になります。

便利さと安全性、両方を手に入れて使っていきましょう。

リンク

ChatGPTでExcel VBAマクロを自動生成してみた|初心者でも使える実践手順
Excel VBAのエラー修正をChatGPTに頼んだら原因が一発で分かった話
仕様が曖昧でもOK?ChatGPTにExcel VBAを作らせてみた結果
ChatGPTに作らせたExcel VBAコードは安全?使う前に確認すべきポイント

■■■スポンサーリンク■■■