🛠️ VBAマクロ作成のコツ - LLMを活用した効率的な開発・配布ガイド
Excel VBAマクロの作成から配布までの流れを、ChatGPT・Claude・Gemini等のLLMを活用しながら効率的に行う方法を解説します。
💡 一番大事なこと:マクロとデータを分ける
VBAマクロを作るとき、マクロ用ファイルとデータ用ファイルは分けるのが鉄則です。
❌ よくない例
スタッフ一覧.xlsm ← データの中にVBAが埋め込まれている
→ マクロを修正したら、このファイルごと差し替えが必要
→ データが消える危険
✅ おすすめ
スタッフ管理マクロ.xlsm ← VBAコードとボタンだけ入っている
↓ 処理
スタッフ一覧.xlsx ← データだけ入っている(普通のExcel)
なぜ分けるのか?
- マクロを修正しても、データファイルはそのまま使える
- マクロだけ差し替えれば全員がアップデートできる
- データファイルが壊れても、マクロは無事
処理の流れ
- マクロ.xlsm を開く
- ボタンをクリック
- ファイル選択ダイアログが出る
- データ.xlsx を選ぶ
- マクロがデータを処理する
📁 作成〜配布の流れ
フォルダ構成
マクロ名/
├── コード/ # VBAコードのテキストファイル
├── 配布用/ # 配布する.xlsmファイル
└── やったこと.txt # いつ何を変えたかの記録
開発フロー
1. ChatGPT / Claude / Gemini 等でVBAコードを作成
↓
2. コードをテキストファイルとして保存(バックアップ)
↓
3. Excelにコピペして動作確認
↓
4. 修正があればLLMに相談 → 2に戻る
↓
5. 完成したら配布用.xlsmとして保存
💾 バックアップのコツ
コードは必ずテキストファイルで保存
- Excelだけに保存すると、ファイル破損時に全て失われる
- テキストなら差分も分かりやすい
日付+時間をファイル名につける
コード/
├── 転記処理_20250103_0930.txt
├── 転記処理_20250103_1420.txt
└── 転記処理_20250105_1100.txt
※「最新」「v1」などは使わない。日時だけで管理するのがシンプル
💡 日時入力が面倒なら「Clibor」などのクリップボードツールで定型文登録すると楽
やったこと.txt を残す
やったこと.txt
----
2025/01/08
- エラー処理を追加
- ファイル選択ダイアログを追加
2025/01/05
- 転記先の列を修正
2025/01/03
- 初版作成
📋 Excelへのコピペ方法
LLMからExcelへの手順
LLMの回答からコードをコピー
- コードブロック右上の「Copy」ボタンを使うと楽
Excelを開く
- マクロを追加したいブック(.xlsm)を開く
VBA Editorを開く
Alt + F11を押す
新規モジュールを作成
- 左側のプロジェクトウィンドウで右クリック → 「挿入」→「標準モジュール」
貼り付け (Ctrl+V)
モジュール名を変更
- 左下のプロパティウィンドウで「(オブジェクト名)」を変更
- 例:
Module1→Tenki(転記)
⚠️ 注意: インポート機能は使わない VBA Editorの「ファイル」→「ファイルのインポート」は日本語が文字化けすることがあるので、手動コピペが確実。
🏷️ モジュール命名規則(ローマ字)
上の手順6で設定する「モジュール名」のルールです。
モジュール名はローマ字
Tenki # 転記処理
Seikei # データ整形
Button # ボタン作成
Shukei # 集計処理
VBA Editorでモジュール名に日本語を使うと文字化けすることがあるため、ローマ字が安全です。
関数名は日本語OK
Public Sub 転記処理_メイン()
Public Sub ボタンを自動作成()
Public Sub データ整形()
関数名(Sub/Function)は日本語でも問題なし。処理内容が一目で分かります。
1ファイル1機能
Tenki.txt → 転記処理だけ
Seikei.txt → データ整形だけ
Button.txt → ボタン作成だけ
機能ごとに分けておくと、修正が楽です。
🔘 ボタンと説明の作成
配布用ファイルには、ボタンと使い方の説明を配置します。
手動で作る方法
- 「挿入」タブ →「図形」→ 角丸四角形を選択
- シート上でドラッグして図形を作成
- 図形を右クリック →「マクロの登録」
- 実行したいマクロを選択
- ボタンの横に使い方の説明を入力
💡 VBAで自動作成する方法(おすすめ)
LLMに頼めば、ボタン・説明・見た目の調整を全部やってくれるVBAを作れます。
LLMへの頼み方
配布用Excelのシートに以下を自動作成するVBAを書いてください。
作成するもの:
- ボタン3つ(スタッフ転記、データ整形、勤怠集計)
- 使い方の説明文(ボタンの横に)
- 目盛線を非表示にする
ボタンの色分け:
- メイン処理 → 青
- サブ処理 → 緑
- 集計 → オレンジ
こうすると、マクロを1回実行するだけで配布用ファイルが完成します。
📦 配布用XLSMの作成
配布用ファイルの作り方
新規Excelブックを作成
マクロ有効ブックとして保存
- 「名前を付けて保存」→ ファイルの種類「Excel マクロ有効ブック (*.xlsm)」
VBAコードを貼り付け
- Alt+F11 → 新規モジュール → コードを貼り付け
ボタンと説明を配置
ボタンを自動作成マクロを実行(Alt+F8 → 選択 → 実行)- ボタンと使い方の説明が一緒に作成される
保存して配布
💡 見た目をきれいにするコツ: 「表示」タブ →「目盛線」のチェックを外すと、セルの格子が消えてスッキリ見える
💬 LLMへの相談のコツ
こんな処理を頼める
- 繰り返し処理 - 2行目から最終行まで、各行に対して○○する
- シート間の転記 - 「一覧」シートから「集計」シートにコピー
- 別ファイルからの転記 - ファイル選択ダイアログで選んだExcelを開いて処理
- 条件で絞り込み - 「部署が○○の行だけ」抽出
- 処理の高速化 - 大量データを扱うとき画面更新を止める
最初に伝えること
ExcelのVBAマクロを作りたいです。
やりたいこと:
- スタッフ一覧のデータを勤怠表に転記する
- 部署でフィルタしてから転記
ファイル構成:
- マクロ用: スタッフ管理.xlsm(ここにVBAを入れる)
- 転記元: スタッフ一覧.xlsx の「一覧」シート
- 転記先: 勤怠表.xlsx の「当月」シート
具体的なセル位置を伝える
転記元:
- A列: スタッフID(2行目から)
- B列: 氏名
- C列: 部署
転記先:
- A列にスタッフID
- B列に氏名
- 1行目はヘッダーなので2行目から
📸 スクリーンショットを送る
言葉で説明するより、Excelの画面をスクショして送るのが一番早いです。
- どのセルからどのセルに転記したいか
- 現在のシートの状態
- エラー画面
ChatGPT / Claude / Gemini いずれもスクショ対応しています。
❌ エラーが出たら
このエラーが出ました:
「実行時エラー '1004': アプリケーション定義またはオブジェクト定義のエラーです。」
エラーが出た行:
Range("A1:B10").Value = sourceData
何が原因でしょうか?
エラーメッセージと、どの行で止まったかを伝えると解決が早いです。
💡 ヒント: エラー画面もスクショで送ると確実!
まとめ
- マクロとデータは分ける - 最重要ルール
- コードはテキストでバックアップ - ファイル破損対策
- LLMにはスクショで説明 - 言葉より早い
- ボタン作成もVBAで自動化 - 配布が楽になる
LLMを使えば、プログラミング経験がなくてもVBAマクロを作成・配布できます。まずは簡単な処理から始めてみましょう。