前回の記事では、
VBAクッキングキット
を利用して、実際に部品をExcelへ取り込み、呼び出して使う方法を紹介しました。
ここまで学んできたことで、
- 転記マッピングシート
- モジュール
- Function
- CALL
- VBAクッキングキット
といった仕組みが少しずつ見えてきたのではないでしょうか。
ただし、
ここで新たな疑問が出てきます。
「結局、生成AIはどこで活用するの?」
ということです。
VBAクッキングの目的は、
コードをたくさん覚えることではありません。
また、
部品をたくさん暗記することでもありません。
目指しているのは、
「やりたいこと」を設計し、生成AIと一緒に業務ツールを作ることです。
そのためにVBAクッキングキットでは、
Excelで利用する部品と同じ内容を、
- MDファイル
- Wordファイル
としても提供しています。
生成AIにそれらを読み込ませることで、
人間と生成AIが同じ部品を共有できるようになります。
今回は実際に、
転記マッピングシートの画像を生成AIへ渡し、
どのように業務ツールを作っていくのかを見ていきましょう。
目次
これまでのおさらい
第1回 なぜ生成AIにVBAを書かせても上手くいかないのか
生成AIに聞いただけでは、VBAはうまく作れないケースが多いです。
なぜなら、「設計」が不足しているからです。
料理で言えば、レシピがない状態で料理を作ろうとしているのと同じです
第2回 転記マッピングシートパターン
実は、事前にマッピング表を用意しておけば、
コードを変更しなくても設定だけで対応できます。
第3回 なぜ短いコードで動くのか?~はじめての部品化~
CALLや関数などの、短いコードで他の複数コードを呼び出す仕組みを体感して頂きました。
第4回 VBAクッキングキットを導入してみよう
複数の部品コードが詰まったBASファイルをエクセルにインポートしました。
今回の記事では、生成AIにもファイルを読み込ませます。
なぜ生成AIに読ませるのか
今、エクセルファイルでは部品を呼び出せるようになっています。
ただし、部品を呼び出しながらコードを組み立てるのは、未経験者の方には難しいと思います。
しかも、生成AIにコードの書き方を聞いても、部品の事は全く考慮されていません。
ですので、生成AIにもMDファイル、もしくはWORDファイルを読み込ませておきます。

こうしておけば、毎回コードの細かい仕様を説明する必要はありません。
やりたい処理パターンだけを伝えれば、生成AIが利用する部品を選択してくれます。
MDファイルを読み込む
生成AIにアップロード
使用する生成AIはChatGPT、CopilotあるいはClaude Codeでもいいです。
生成AIにMDファイル、もしくはWORDファイルを下の画像のように読み込みましょう!

転記処理用テストデータの作成・準備
詳細な転記マッピング表の作り方は、第2回を参照してください。
マッピング表の列の順番は正確に再現してください。
なお、サンプルファイルも添付しますので、そちらも参考にしてください。
転記処理用コードを依頼
今回、書きたいコードはマッピング表をもとに転記処理を行うVBAコードを書くことです。

上の画像のように、マッピング表のスクショもアップロードしましょう!
以下が実際の依頼文です。
アップロードした画像はマッピングという名称のシートの画像です。画像内の表はマッピング表であり、転記元と転記先が記してあります。このマッピング表を基に、転記処理を行うVBAコードを書いてください。
依頼する際の注意点
【重要】ここだけは読んでください
マッピング表の範囲が転記用部品の引数(材料)になります。
スクショ画像内には開始行・開始列・終了行・終了列が含まれるようにしましょう。

シート名の表現には注意しましょう
例えば、実際のシート名が「マッピング」の場合を考えてみましょう。
「マッピングシート」と表現すると、生成AIは「マッピングシート」という名前のシートだと解釈する可能性があります。
そのため、
・マッピングという名称のシート
・シート名:マッピング
のように明確に表現してください。
ちなみに、以下が、今回出力したコードです。(テスト済み)
出力コード
Sub 大本_セル転記()
Dim errNum As Long
Dim errDesc As String
On Error GoTo MyError
セル転記実行
Exit Sub
MyError:
errNum = Err.Number
errDesc = Err.Description
If errNum - vbObjectError >= 1000 _
And errNum - vbObjectError < 2000 Then
MsgBox "エラー番号 " & _
(errNum - vbObjectError) & vbCrLf & _
errDesc
Else
MsgBox "VBAエラー番号 " & _
errNum & vbCrLf & _
errDesc
End If
End Sub
Sub セル転記実行()
Dim rngMap As Range
'マッピング表取得
Set rngMap = 部品_範囲設定_行可変( _
ThisWorkbook, _
"マッピング", _
2, _
1, _
7, _
2)
If rngMap Is Nothing Then
MsgBox "マッピング表にデータがありません"
Exit Sub
End If
'転記実行
If 部品_転記_セル単位( _
ThisWorkbook, _
ThisWorkbook, _
rngMap, _
2, _
3, _
4, _
5, _
6, _
7) = False Then
MsgBox "転記に失敗しました"
Exit Sub
End If
MsgBox "転記が完了しました"
End Sub
出力されるコードを使う際の注意点
名前の重複
以下の画像のようなエラーメッセージが出ることがあります。

この場合、同じ部品名の部品がファイル内に重複している可能性があります。こちらはどちらかを削除してください。
もしくは部品名の前に、「Module名」+「.」を付けてみてください。
部品名の選択(今回のケース)
インポートしたBASファイル内に、似たような部品があります
指定しなければ、恐らく「部品_範囲設定_行可変」の方が使われます。
出力されるプロシージャー数
生成AIからは2つのプロシージャーが出力される可能性が高いです。
1.呼び出し用プロシージャー(2を呼び出す)
2.部品を含むプロシージャー(1に呼び出される)
1の方にはエラーが起こった時のための制御用のコード(On Error)が含まれています。
*On Errorについては別の記事で詳細を解説します。
Sub 大本_セル転記()
Dim errNum As Long
Dim errDesc As String
On Error GoTo MyError
セル転記実行
Exit Sub
*上記は全コードではありません
なぜ2つのプロシージャーを作るのか
これは後々、設計をしやすくするためです。
料理で考えると「材料を切りそろえる」「炒める」「煮込む」「盛り付ける」などの複数工程があります。
その複数工程を人間が制御するわけですが、1のプロシージャーは複数工程が作成されていくことを想定した「制御」
用のプロシージャーです。
もし工程に応じて、プロシージャーを追加したら制御用のプロシージャーからCALLで呼び出せばいいのです。
ただ今回の記事では、2の部品が含まれたプロシージャーだけでも事が足ります。
実行ボタン
作成したコードを実行する際は、ワークシートにボタンを追加しましょう!

まず、上の画像の「開発タブ」⇒「挿入」⇒「ボタン(一番左上)から作成します。

次に、実際にボタンを作成する際は、マクロ名(プロシージャー名)を紐づけましょう!
(補足)
もし、以下の画像のように、黄色のマークが出て処理が止まった場合は、リセットボタンを押してください。

生成AIは何を考えているのか
実は生成AIはただコードを書いているわけではありません。
MDファイル(WORDファイル)内には、部品のコードだけでなく、以下の内容も含まれています。
- 部品間の依存関係(関連性)やシートとの依存関係(関連性)
- 前提条件
- エラー処理の考え方
- 禁止事項他
これらの情報を踏まえ、以下の流れでコードを生成します。
生成AIは
ゼロからコードを書いているわけではありません
マッピング表を読み
利用できる部品を選び
引数を決定し
コードを組み立てています
つまり、ただコードをやみくもに考えるのではなく、部品間やシート間の設計を考慮してコードを書いています。
ここが今回の記事の一番のポイントです。
VBAクッキングの本当の目的
このシリーズは、VBAを書ける人を育てるのが目的ではありません。
業務改善のアイデアを
生成AIと一緒に実現できる人を増やしたい。
そのために、
設計
↓
パターン
↓
部品
↓
生成AI
という順番で紹介してきました。
ここで今回の記事の内容を振り返ってみてください。
全くコードを書いていないですよね。
どちらかというと、マッピング表を設定するのが大変だったと思います。
つまり、設計の方に重点を置いていたということです。
逆に人間が設計をしていれば、生成AIも有効なコードを書きやすいです。
次のシリーズ予告
今回、生成AIと部品を共有することで、
設計からコード生成までを体験しました。
VBAクッキングの目的は、
コードを書くことではありません。
設計を考え、
生成AIと協力しながら業務改善を進めることです。
次回からは、
実際の業務改善で使えるレシピ(パターン)を紹介していきます。
生成AI時代のExcel業務改善レシピ











コメントを残す