VBAマクロ作成のコツ - LLMを活用した効率的な開発・配布ガイド

Excel VBAマクロの作成から配布までを解説。マクロとデータを分ける鉄則、LLMへの相談のコツ、配布用XLSMの作り方など、非プログラマーでも実践できる実用的なガイド。

VBAExcelAILLM

🛠️ VBAマクロ作成のコツ - LLMを活用した効率的な開発・配布ガイド

Excel VBAマクロの作成から配布までの流れを、ChatGPT・Claude・Gemini等のLLMを活用しながら効率的に行う方法を解説します。

💡 一番大事なこと:マクロとデータを分ける

VBAマクロを作るとき、マクロ用ファイルとデータ用ファイルは分けるのが鉄則です。

❌ よくない例

スタッフ一覧.xlsm ← データの中にVBAが埋め込まれている
→ マクロを修正したら、このファイルごと差し替えが必要
→ データが消える危険

✅ おすすめ

スタッフ管理マクロ.xlsm ← VBAコードとボタンだけ入っている
    ↓ 処理
スタッフ一覧.xlsx ← データだけ入っている(普通のExcel)

なぜ分けるのか?

  • マクロを修正しても、データファイルはそのまま使える
  • マクロだけ差し替えれば全員がアップデートできる
  • データファイルが壊れても、マクロは無事

処理の流れ

  1. マクロ.xlsm を開く
  2. ボタンをクリック
  3. ファイル選択ダイアログが出る
  4. データ.xlsx を選ぶ
  5. マクロがデータを処理する

📁 作成〜配布の流れ

フォルダ構成

マクロ名/
├── コード/        # 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への手順

  1. LLMの回答からコードをコピー

    • コードブロック右上の「Copy」ボタンを使うと楽
  2. Excelを開く

    • マクロを追加したいブック(.xlsm)を開く
  3. VBA Editorを開く

    • Alt + F11 を押す
  4. 新規モジュールを作成

    • 左側のプロジェクトウィンドウで右クリック → 「挿入」→「標準モジュール」
  5. 貼り付け (Ctrl+V)

  6. モジュール名を変更

    • 左下のプロパティウィンドウで「(オブジェクト名)」を変更
    • 例: Module1Tenki(転記)

⚠️ 注意: インポート機能は使わない 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  → ボタン作成だけ

機能ごとに分けておくと、修正が楽です。


🔘 ボタンと説明の作成

配布用ファイルには、ボタンと使い方の説明を配置します。

手動で作る方法

  1. 「挿入」タブ →「図形」→ 角丸四角形を選択
  2. シート上でドラッグして図形を作成
  3. 図形を右クリック →「マクロの登録」
  4. 実行したいマクロを選択
  5. ボタンの横に使い方の説明を入力

💡 VBAで自動作成する方法(おすすめ)

LLMに頼めば、ボタン・説明・見た目の調整を全部やってくれるVBAを作れます。

LLMへの頼み方

配布用Excelのシートに以下を自動作成するVBAを書いてください。

作成するもの:
- ボタン3つ(スタッフ転記、データ整形、勤怠集計)
- 使い方の説明文(ボタンの横に)
- 目盛線を非表示にする

ボタンの色分け:
- メイン処理 → 青
- サブ処理 → 緑
- 集計 → オレンジ

こうすると、マクロを1回実行するだけで配布用ファイルが完成します。


📦 配布用XLSMの作成

配布用ファイルの作り方

  1. 新規Excelブックを作成

  2. マクロ有効ブックとして保存

    • 「名前を付けて保存」→ ファイルの種類「Excel マクロ有効ブック (*.xlsm)」
  3. VBAコードを貼り付け

    • Alt+F11 → 新規モジュール → コードを貼り付け
  4. ボタンと説明を配置

    • ボタンを自動作成 マクロを実行(Alt+F8 → 選択 → 実行)
    • ボタンと使い方の説明が一緒に作成される
  5. 保存して配布

💡 見た目をきれいにするコツ: 「表示」タブ →「目盛線」のチェックを外すと、セルの格子が消えてスッキリ見える


💬 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

何が原因でしょうか?

エラーメッセージと、どの行で止まったかを伝えると解決が早いです。

💡 ヒント: エラー画面もスクショで送ると確実!


まとめ

  1. マクロとデータは分ける - 最重要ルール
  2. コードはテキストでバックアップ - ファイル破損対策
  3. LLMにはスクショで説明 - 言葉より早い
  4. ボタン作成もVBAで自動化 - 配布が楽になる

LLMを使えば、プログラミング経験がなくてもVBAマクロを作成・配布できます。まずは簡単な処理から始めてみましょう。

💬 生成AI・DX導入のご相談

この記事に関するご質問や、生成AI導入についてお気軽にご相談ください

LINEで相談する

© 2022-2025 infoHiroki. All rights reserved.