目次
AIのコードをそのまま使うのは不安
ChatGPTでExcel VBAを作れるようになると、作業スピードは一気に上がります。
ただ一方で、こんな不安を感じたことはないでしょうか。
-
勝手にファイルを削除しない?
-
自分が想定していない場所を触っていない?
-
本当にこのコード、今の環境で安全?
特にVBAは「一度実行したら取り消せない処理」 が多いのが特徴です。
今回は、実際にChatGPTに作ってもらったファイル削除コードを確認したら、意図と違うファイルを削除する内容だったという体験を元に、AIが作ったVBAを使う前に、どこをどう確認すべきかを具体的に解説します。
実体験:ファイル削除コードを確認してヒヤッとした話
あるとき、次のような要望をChatGPTに投げました。
指定フォルダ内の古いファイルを削除するVBAを作ってください。
出てきたコードをパッと見た感じ、「それっぽい」「ちゃんと動きそう」に見えました。
でも、よく読んでみると問題がありました。
-
削除対象のフォルダが想定と違う
-
条件指定がなく、フォルダ内の全ファイルが対象
-
テスト用のフォルダを指定していない
もしそのまま実行していたら、本番データのファイルをまとめて削除していた可能性があります。
この経験から、「ChatGPTのVBAは便利だけど、必ず自分で確認する」という意識が強くなりました。
特に注意すべき処理
ここからは、ChatGPTが作ったVBAで特に危険になりやすい処理を具体的に説明します。
Kill(ファイル削除)
Kill は、指定したファイルを完全に削除する命令です。
-
ゴミ箱に入らない
-
元に戻せない
-
パス指定を間違えると被害が大きい
ChatGPTが書いたコードで、
のような記述があったら要注意。

-
本当にそのフォルダでいいか
-
ワイルドカード(
*)で削除範囲が広すぎないか -
テスト用フォルダになっているか
必ず目視で確認しましょう。
Open / Close
Open はファイルを開く処理、Close は閉じる処理です。
問題になりやすいのは、
-
Closeし忘れている
-
間違ったファイルをOpenしている
-
既存ファイルを上書き前提で開いている
特に Open ~ For Output は、既存ファイルを強制的に上書きします。
「読み込みのつもりだったのに、実は上書きしていた」という事故はよくあります。
フォルダ操作
MkDir、RmDir、Dir などのフォルダ操作も要注意です。
-
フォルダを削除していないか
-
想定外の階層を指定していないか
-
パスが固定書き(ハードコーディング)されていないか
ChatGPTは「環境差」までは考慮してくれないことが多いので、自分のPCでそのパスが本当に安全かを確認しましょう。
上書き保存
Save や SaveAs を使った処理も要チェックです。
-
元ファイルを上書きしていないか
-
バックアップを取らずに保存していないか
-
ファイル名が固定されていないか
特に業務ファイルでは、「元に戻せない上書き」=事故になります。
チェックポイント一覧
Setされているオブジェクト
このような行では、
-
本当にそのブック名で合っているか
-
別ブックを参照していないか
を確認します。
オブジェクト指定ミスは、意図しないデータ破壊につながることがあります。
ループ条件
For や Do While の条件も重要です。
-
無限ループになっていないか
-
範囲が広すぎないか
-
条件が逆になっていないか
削除処理がループ内にある場合、1回のミスが大量削除に直結します。
対象シート名
ここも必ず確認。
-
本番用シート名になっていないか
-
テスト用シートを使っているか
「たまたま同名シートがあった」という事故も起こりがちです。
保存・削除処理
コードの中で、
-
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コードは安全?使う前に確認すべきポイント
Excel VBA初心者がChatGPTを使うと挫折しにくくなる理由
CopilotでExcel作業はどこまで効率化できる?実務で使ってみた結果
Copilotに仕事を任せてみた|メール・資料作成はここまで楽になる
Copilotが向いている人・向いていない人を実体験から整理してみた
ChatGPT・Copilot・Geminiに同じ仕事を頼んだら結果が全然違った
結局どれを使えばいい?目的別に生成AIを整理してみた【初心者向け】
初心者が最初にやるべき生成AI活用① ChatGPTで「長文を理解・整理する」読むのがしんどい人ほど効果が出る使い方
初心者が最初にやるべき生成AI活用②ChatGPTに「分からないことをそのまま相談する」使い方・聞き方を気にしない安心感
初心者が最初にやるべき生成AI活用③AIを「自分専用の調べ物係」にする使い方|検索に疲れた人ほど効果が出る
ChatGPTにブログ記事を“赤ペン先生”してもらったら修正力がすごかった話―書くのが苦手な人ほど使ってほしい文章改善―
CopilotでExcel作業手順書を一瞬で作る|引き継ぎ資料が秒で完成した話
Geminiでアイデアが枯れたときの発想復活法|何も思いつかないを脱出する使い方
ChatGPT・Copilot・Geminiをブレスト役で使い分ける実例|発想が加速した方法
CopilotでExcel集計→Word報告書を一気に作る実務フロー― 月次報告が“考えずに終わる”ようになった話 ―
大型Excel VBAはChat-GPTよりCopilotの方が作りやすい?実務で感じた変化
Copilotで会議議事録からToDo管理まで一気にやってみた実務フロー
Geminiで社内資料の画像を作ってみた|伝わらない資料が一瞬で変わった話
ChatGPTに流行りの「今まで私があなたをどう扱ってきたかを画像にして」を頼んでみた
ChatGPTのプロンプトを“自分用”に進化させる方法|頼み方で結果が激変する理由
初心者が最初にやりがちなプロンプトの失敗例と直し方
ChatGPTが急に賢くなる「前提条件」の渡し方-同じ質問なのに答えが変わるのはなぜ?-
プロンプトを毎回書かなくてよくなる“会話の残し方”
ChatGPTに「察してもらえない」と感じた時の原因と対処法|噛み合わない理由を実例で解説
AIに雑に投げても失敗しにくくなる頼み方のコツ|考えずに使っても噛み合う方法
プロンプトが思いつかない人のための“最初の一文”テンプレ集
ChatGPTを“相棒化”する人と、うまく使えない人の決定的な差
生成AIはどこまで使っていい?初心者が最初に知るべき法律の話
AI画像生成は違法?著作権で“やってはいけないこと”実例集
商用利用OK?NG?生成AIの利用規約を初心者向けに噛み砕く
AIで作った文章は誰のもの?著作権の考え方をやさしく解説
「知らなかった」では済まない?生成AIトラブル事例と回避法
ブログ・SNSでAI生成物を使うときの最低限の注意点まとめ
AIに頼りすぎて思考力が落ちた話|便利さの裏で起きたリアル失敗
AIの回答を信じて怒られた話|正しいはずが通用しなかった理由
ChatGPTにExcelマクロを直してもらったらコメントが消えた話|親切の落とし穴
Copilotの差分コードが分からなかった話|全コード出してもらう選択
ChatGPTにきれいな文章はいらなかった話|ぐちゃぐちゃでも伝わる
Copilotでクロス表を縦持ちデータに変換|実務VBA作成の流れ
Copilotでクロス表を縦持ちデータに変換|実務仕上げ編
Copilotでクロス表を縦持ちデータに変換|配列で高速化する
Copilotでクロス表を縦持ちデータに変換|項目変更に強い構造へ
Copilotでリストボックスにユニーク値を設定|実務VBA
Copilotでリストボックス並び替え対応|実務VBA
Copilotでリストボックス表示制御を追加|実務VBA
Copilotで階層連動コンボボックス作成|実務VBA
Copilotで列番号を動的管理|階層連動VBAの実務改善
Copilotで並び順統一とUI改善|階層連動VBA仕上げ
Copilotで高速化(配列化)|階層連動VBA最終仕上げ
CopilotにListViewを相談したら絶望した話|64bit VBAの壁
ListView強行突破|MSCOMCTL.OCX配置に成功した話
CopilotでListView登録に挑戦|regsvr32実行編(64bit VBA)
CopilotでListView確認|追加コントロール検証編(64bit VBA)
Copilotに全否定された件|ListView断念か?64bitの壁
CopilotでListView地獄を検証|32bit化で見えたWindowsの罠
CopilotでListView復活か?参照設定に見えた希望
Excel64bit版ListView問題の結論が見えた日
Excel64bit版ListView問題|2017年更新情報をCopilotへ再確認した結果
Excel64bitでListViewをあきらめて代替UIへ挑戦
Excel64bit代替UIに挑戦した結果…結局動かなかった話 ListViewの代替UI作戦が始まった
Excel64bit代替UIに挑戦した結果…hWndが取得できなかった理由 代替UI計画の本当の問題が見えてきた
Excel VBA WindowProcの壁 UserFormにウィンドウがなければWM_DROPFILES受取不可
Excel VBAでListBoxへドラッグ&ドロップできない理由 前回までのおさらい
Copilotはなぜ存在しない機能を提案したのか 前回ブログで生まれた新たな疑問
AIから正しいVBAコードを引き出す質問術