ChatGPTでVBAのマクロを作る方法!Excelの作業を自動にする手順

  • URLをコピーしました!

Excelの単純作業に毎日何時間も費やしていませんか。ChatGPTを使えば、プログラミングの知識がなくても、数秒でVBAのマクロコードを生成し、複雑な計算やデータ整理を自動化できます。

この記事では、Excelの準備からChatGPTへの指示出し、エラーの修正方法まで、具体的な手順を一つずつ解説します。手作業によるミスを減らし、浮いた時間でより付加価値の高い仕事に集中するためのスキルを身につけましょう。

目次

Excelでマクロを動かす準備を整える

マクロを自作するには、Excelの標準設定では隠されているツールを呼び出す必要があります。普段使っているメニューに「開発」という項目が見当たらない場合でも、設定を数回クリックするだけで表示可能です。ここからVBAを記述するための専用エディタへ移動し、コードを流し込む場所を確保するところから始めます。

開発タブをリボンに表示する

Excelの画面上部にある「リボン」のどこかを右クリックし、「リボンのユーザー設定」を選んでください。右側に表示されるリストの中から「開発」という項目を探し、チェックを入れて「OK」を押します。

これでメニューバーに「開発」タブが出現します。マクロの記録や編集、ボタンの設置といったすべての操作はこのタブから行います。

VBE(Visual Basic Editor)を起動する

開発タブの中にある「Visual Basic」というボタンをクリックします。ショートカットキーの「Alt + F11」を押しても構いません。

すると、Excel本体とは別のグレーのウィンドウが立ち上がります。これがVBEと呼ばれるプログラムの編集画面です。

標準モジュールを新規挿入する

VBEの画面上部にあるメニューから「挿入」を選び、さらに「標準モジュール」をクリックしてください。画面右側に真っ白なウィンドウが表示されます。

ここにChatGPTで作ったコードを貼り付けることになります。この「標準モジュール」という場所を正しく作成しないと、マクロが正しく認識されないので注意してください。

ChatGPTにVBAコードを作らせるプロンプト

AIに適切なコードを書かせるためには、指示の出し方にコツがあります。ただ「マクロを作って」と頼むのではなく、Excelのシートが今どのような状態にあり、最終的にどのような結果を求めているのかを言葉で定義しなければなりません。

処理の対象となるシート名とセル範囲を伝える

AIはあなたのExcel画面を見ることができません。そのため、データが「Sheet1」にあるのか、それとも「売上データ」という名前のシートなのかを明示する必要があります。

具体的には「A2セルからG100セルまで」といった範囲を伝えます。範囲が変動する場合は「A列の最終行まで」という表現を使うと、AIはそれに応じた動的なコードを書き出します。

動作の条件やルールを箇条書きで指定する

「もし〜なら〜する」といった条件分岐がある場合は、箇条書きで一つずつ整理して伝えてください。

具体的には「B列が1000以上の行だけを赤色にする」「C列が空欄ならその行を削除する」といった書き方をします。ルールを細かく分けることで、AIの計算ミスを減らすことができます。

変数名やコメントの言語を指示する

生成されるプログラムを後で自分で見返したときに、何が書いてあるか理解できるように指示を出します。

具体的には「プログラムの各行に、何をしているか日本語でコメントを入れてください」と付け加えます。変数名を「row_count」や「last_row」などの意味が通じる英語にするよう指示することも大切です。

プロンプトに含めるべき要素記述の例
対象シート「Sheet1」または「現在開いているシート」
範囲指定「A列の1行目からデータが入っている最後まで」
動作指示「重複したデータを削除して、日付順に並べ替える」
補足ルール「完了後に完了メッセージを出す」「色を青にする」

生成されたコードをExcelに貼り付けて実行する

ChatGPTが書き出したコードを自分のExcelで動かす作業に入ります。コピーした内容を所定の場所に流し込み、実行ボタンを押すだけで自動化が始まります。もしコードが複数提案された場合は、一番新しく出力されたものを使いましょう。

ChatGPTからコードをコピーする

AIの回答欄にある「Copy code」というボタンをクリックします。自分でマウスを使って範囲選択をするよりも、ボタンを使ったほうがコピー漏れを防げます。

コードの最初が「Sub」で始まり、最後が「End Sub」で終わっていることを確認してください。このセットがマクロの一つの単位になります。

VBEのコードウィンドウに貼り付ける

先ほど準備したVBEの「標準モジュール」の画面を開きます。白いエリアを一度クリックしてカーソルを置き、「Ctrl + V」で貼り付けます。

すでに何か文字が書いてある場合は、すべて消してから上書きして構いません。貼り付けた後、赤い文字が表示されていなければ、文法上のエラーはないと判断できます。

F5キーまたは実行ボタンで動作を試す

VBE画面の上部にある再生ボタンのような形をした「実行」アイコンをクリックします。キーボードの「F5」キーを押しても同じ動作になります。

Excelの画面に戻り、指定した通りにデータが動いているか確認してください。実行前に必ずファイルのバックアップを取っておくことを強く推奨します。

ファイルをマクロ有効ブック(.xlsm)で保存する

マクロを含むExcelファイルは、通常の保存方法ではプログラムが消えてしまいます。ファイルを閉じた後に「苦労して作ったマクロがなくなっていた」という失敗を避けるために、正しい形式で保存する習慣をつけましょう。

保存形式をマクロ有効ブックへ変更する

「名前を付けて保存」を選択し、ファイルの種類をプルダウンメニューから選びます。ここで必ず「Excel マクロ有効ブック(.xlsm)」を指定してください。

通常の「Excel ブック(.xlsx)」のままだと、警告が出た後にマクロがすべて破棄されます。アイコンに小さな「!」マークがついているのがマクロ有効ブックの目印です。

既存の.xlsxファイルとの違いを把握する

マクロ有効ブックは、プログラムを内包しているため、セキュリティ設定によっては開くときに警告が出ることがあります。これはExcelがウイルスなどを警戒して出しているものです。

自分で作成したファイルであれば、迷わず「コンテンツの有効化」を押して実行してください。一度設定すれば、同じファイルでは次から警告が出なくなります。

ファイル名に日本語や日付を含めて管理する

自動化ツールが増えてくると、どのファイルが最新か分からなくなります。ファイル名の末尾に「_20260223」のように日付を付けるのが効率的です。

また、「データ統合マクロ_売上用.xlsm」といった具体的な名前を付けることで、後から探す手間を省けます。

拡張子形式名称マクロの保存
.xlsxExcel ブック不可
.xlsmExcel マクロ有効ブック可能
.csvCSV (カンマ区切り)不可

3つの定番業務を自動化するプロンプト

日常業務で頻繁に発生する作業は、プロンプトをテンプレート化しておくと便利です。以下の命令文をコピーして、必要箇所を書き換えるだけで、すぐに専用のマクロが手に入ります。

1. 複数のシートを1枚に統合する命令

全シートのデータを「まとめ」シートに集約するプロンプトです。

# 指示
このブックにあるすべてのシート(「まとめ」シート以外)のデータを、「まとめ」シートのA列の末尾に順番に貼り付けるVBAコードを作成してください。
各シートの1行目は見出しなので、2行目以降をコピー対象としてください。

複数の担当者が入力した個別のシートを一つにまとめる際、手作業によるコピー&ペーストをなくすことができます。データ量が多いほど、このマクロによる時間短縮の効果は大きくなります。

2. 特定の条件に合う行を別シートに抽出する命令

特定の売上目標を超えたデータだけを抜き出すといった処理に役立ちます。

# 指示
「売上明細」シートのD列を確認し、値が「10000」以上の行をすべてコピーして「重要顧客」シートに貼り付けるマクロを作成してください。
貼り付け前に「重要顧客」シートの内容は一度クリアしてください。

抽出条件を「50000以上」や「未納」といった文字列に変更するだけで、さまざまな用途に使い回せます。

3. 表の書式設定と罫線を一括で適用する命令

データの見た目を一瞬で整えるための指示です。

# 指示
アクティブなシートのデータが入っている範囲全体に、細い実線の格子状の罫線を引いてください。
また、1行目の背景色を薄いグレーにし、文字を太字にして中央揃えに設定するVBAコードをお願いします。

報告書を作成する際、毎回手動で行っていた書式設定がボタン一つで完了します。

プロンプトの精度を高める記述のコツ

AIから一発で完璧な回答を引き出すには、指示の内容をより具体的に絞り込む必要があります。言葉の解釈の余地をなくすことで、AIが迷わずに正しいコードを生成できるようになります。

セル内の具体的なデータ形式を提示する

日付が「2026/2/23」なのか「2月23日」なのかを伝えます。数値についても、カンマが入っているかどうかでAIが書くべきコードが変わります。

「A列にはyyyy/mm/dd形式の日付が入っています」といった一言を添えてください。データの型を正確に伝えることで、エラーの発生を未然に防げます。

エラー発生時の処理(On Error)を含める

予期しないデータ(空欄や文字化け)があった場合に、マクロが途中で止まらないようにする工夫です。

「もしエラーが起きても途中で止めず、次の行の処理へ進むようなコードにしてください」と指示します。これを専門用語で「エラーハンドリング」と呼び、実用的なプログラムには欠かせない要素です。

処理完了のメッセージボックスを表示させる

大きなデータを処理している間、Excelが固まっているように見えることがあります。処理が終わったことが分かるように、最後に通知を出させます。

「すべての処理が終わったら『完了しました』とメッセージボックスを表示してください」と付け加えます。これがあるだけで、作業が確実に終わったことを確認でき、安心感が得られます。

エラーが出た時の対処と修正の依頼

マクロを実行した際、エラーメッセージが出て止まってしまうのはよくあることです。これは失敗ではなく、AIと協力してコードを完成させるための過程に過ぎません。落ち着いてエラーの内容をAIに伝えましょう。

エラー番号と内容をChatGPTにそのまま渡す

「実行時エラー ‘1004’:アプリケーション定義またはオブジェクト定義のエラーです」といったメッセージを、そのままChatGPTのチャット欄に貼り付けます。

AIはその番号と文章から、原因がセル範囲の指定ミスなのか、シート名の間違いなのかを特定します。自分で原因を探そうとせず、AIにデバッグを任せるのが最も早いです。

黄色くハイライトされた行をコピペして尋ねる

エラーが出た際に「デバッグ」ボタンを押すと、VBE画面で問題のある行が黄色く光ります。その一行をコピーしてAIに送ってください。

「この行でエラーが出ました。どう直せばいいですか?」と聞くだけで、修正済みのコードを提案してくれます。

別の書き方(アルゴリズム)での再作成を促す

修正してもうまくいかない場合は、アプローチを変えるよう指示します。

具体的には「別の書き方で同じ動作をするマクロを提案してください」と伝えます。VBAには同じ目的を達成するための書き方が複数あるため、別の方法ならあっさり動くことが珍しくありません。

外部アプリと連携してさらに効率化する

Excel単体での処理に慣れてきたら、他のアプリを操作するマクロに挑戦しましょう。VBAを使えば、Excel以外のソフトウェアを自動で動かす「RPA(ロボットによる業務自動化)」に近いことが可能になります。

Excelの表をPDFとして一括出力する

シートごとにPDFを作成し、特定のフォルダに保存する作業を自動化します。

# 指示
各シートをPDF形式で、デスクトップにある「請求書」フォルダに保存するVBAを作成してください。
ファイル名はシート名にしてください。

何十枚もあるシートを手動で「名前を付けて保存」する作業が、わずか数秒で終わります。

指定のリストに基づいてOutlookメールを下書きする

Excelの住所録を使って、件名や本文を差し込んだメールを自動作成します。

# 指示
ExcelのリストのA列に名前、B列にメールアドレスがあります。
これらを使って、Outlookでメールの下書きを作成するマクロを書いてください。

送信ボタンは自分で押すように設定しておけば、誤送信のリスクを抑えつつ大量の連絡業務をこなせます。

フォルダ内の複数のファイルを自動で開いて処理する

特定のフォルダに入っている複数のExcelファイルを、一つずつ開いて特定のセルの値を書き換えるといった一括処理が可能です。

ファイル一つひとつを開く手間がなくなるため、月次レポートの作成などにおいて圧倒的な効率化を実現できます。

マクロのセキュリティと実行の許可

マクロは便利な反面、悪意のあるプログラムを実行してしまうリスクも孕んでいます。そのため、Excelには強力な保護機能が備わっています。自分で作ったマクロをスムーズに動かすための設定を行いましょう。

トラストセンターでマクロを有効にする

Excelのオプションから「トラストセンター」を開き、「マクロの設定」を確認します。「警告を表示してすべてのマクロを無効にする」が選ばれている場合、実行のたびに許可を求められます。

自分が開発する間は、一時的に「すべてのマクロを有効にする」に変更しても良いですが、安全のために作業後は元の設定に戻すか、特定のフォルダを「信頼済み」にする方法を選びましょう。

信頼済み場所を指定して警告を消す

特定のフォルダ(例:デスクトップの「マクロ作業」フォルダ)を「信頼済み場所」として登録します。

このフォルダ内に置いたファイルであれば、Excelはいちいち警告を出さずにマクロを実行させてくれます。利便性と安全性を両立させるための賢い設定方法です。

デジタル署名の付与を検討する

他人にマクロ付きファイルを配布する場合は、デジタル署名を付けることで「作成者が身元不明ではない」ことを証明できます。

これにより、受け取った側も安心してマクロを実行できるようになります。企業のセキュリティポリシーが厳しい環境では、この設定が必要になる場合があります。

管理しやすいコードを書かせる追加指示

マクロが複雑になればなるほど、後からの修正が難しくなります。AIにコードを作らせる段階で、整理整頓された「きれいなプログラム」を書かせるための工夫をプロンプトに加えましょう。

プログラムの処理内容をコメントとして残す

コードの各所に、何のための処理なのかを説明するメモ(コメント)を入れさせます。VBAでは「’(シングルクォーテーション)」以降がコメントになります。

「後で修正しやすいように、処理のブロックごとに詳細な日本語コメントを入れてください」と頼んでください。これがあるだけで、半年後の自分でも内容をすぐに思い出せます。

インデントを整えて視認性を上げる

インデント(字下げ)を正しく行うことで、プログラムの構造が視覚的に分かりやすくなります。

「インデントを正しく使い、読みやすいフォーマットで出力してください」と指定します。AIは通常きれいなコードを書きますが、念押ししておくことでより整理された結果が得られます。

変数活用による汎用性の向上

数値をコード内に直接書く(ハードコーディング)のではなく、変数として定義させます。

具体的には「消費税率を変数として宣言し、プログラムの冒頭で数値を変更できるようにしてください」と指示します。税率が変わった際、一箇所を書き換えるだけで済むため、メンテナンスが非常に楽になります。

自動化の規模を広げて稼ぐスキルにする

ChatGPTを使ってマクロが作れるようになると、それは単なる時短ツールを超えて、あなた自身の大きな武器になります。浮いた時間を使ってさらに複雑な自動化に挑戦し、仕事の価値を高めていきましょう。

定型業務の工数を数値化して削減効果を出す

自分が作ったマクロで、月に何時間削減できたかを計算してみてください。

「週に3時間かかっていた集計が10秒になった」という事実は、職場での評価に直結します。数字で成果を示すことで、スキルとしての説得力が増します。

複雑な条件分岐を組み合わせたツールを作成する

単一の作業だけでなく、複数の工程を組み合わせた「ツール」へと昇華させます。

例えば、「データを取得し、計算し、グラフ化し、PDFにしてメールする」という一連の流れを一つのボタンに集約します。ここまでできれば、自動化のプロとして頼られる存在になれるはずです。

ChatGPTを専属のデバッグ担当として活用する

新しい機能を追加したいときや、より高速に動かしたいときは、既存のコードをChatGPTに見せて「これを最適化して」と頼みます。

AIは無駄な処理を削り、よりスマートな書き方を提案してくれます。AIを先生として使い続けることで、あなたのVBAスキルも自然と向上していきます。

まとめ:Excelの自動化で自由な時間を作る

ChatGPTとVBAを組み合わせれば、プログラミング学習に挫折した人でも確実に業務を自動化できます。大切なのは、最初から完璧を求めず、小さな作業からAIに任せてみることです。

  • 開発タブを表示してVBEの準備をする
  • 具体的な条件を箇条書きにしてChatGPTに指示を出す
  • エラーが出たらそのままAIに伝えて修正させる
  • 保存時は必ず「.xlsm」形式を選択する

この手順を繰り返すだけで、あなたのExcel作業は劇的に変化します。手作業のストレスから解放され、より創造的な仕事に時間を使える環境を手に入れましょう。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

目次