NotebookLMでVBAのコードを整理するコツ!マクロ作成を楽にする方法

  • URLをコピーしました!

他人が書いたスパゲッティコードや、数年前に自分が作ったきりの複雑なマクロを解読する作業は苦痛です。NotebookLMを活用すれば、膨大なVBAモジュールを「自分の知識」としてAIに読み込ませ、コードの整理や修正を劇的に効率化できます。

この記事では、散らばったVBAコードをNotebookLMで構造化し、保守性の高いマクロへと作り変えるための手順を解説します。AIを副操縦士として使いこなし、動作の重いマクロや解読不能なロジックをスッキリと片付けましょう。

目次

NotebookLMでVBAコードを整理するメリット

複雑に絡み合ったVBAコードを前にして、どこから手をつければ良いか分からなくなった経験はありませんか。NotebookLMは、あなたがアップロードしたコードだけを情報の根拠にするため、一般的なAIチャットよりも正確な解析が可能です。関数同士の呼び出し関係や、意図が不明な変数の役割をAIが瞬時に特定し、マクロの全体像をあなたの代わりに把握してくれます。

1. 巨大なスパゲッティコードを一瞬で解読する

数百行、数千行に及ぶコードでも、NotebookLMなら数秒で内容をスキャンします。AIはプログラムの論理的な流れを理解するため、入り組んだIf文やループ処理の目的を、平易な言葉で説明してくれます。

古いコードにはコメントが不足している場合が多いですが、AIは処理内容からそのコードが「何をしているか」を推論します。処理の核心部分を特定することで、どこを削り、どこを直すべきかの判断が容易になります。

2. コードの根拠を引用機能で即座に特定する

AIが提案した修正案が、元のコードのどの部分に基づいているかを即座に確認できます。回答に表示される引用番号をクリックすれば、ソース内の該当する行がハイライト表示される仕組みです。

これにより、AIが勝手に存在しない関数を捏造するリスクを排除し、事実に基づいた修正が進められます。情報の裏取り作業が数秒で終わるため、大規模なシステム改修でもミスを最小限に抑えられます。

3. 学習データに使われない安全な環境で解析する

会社で使うマクロには、業務上の機密ルールが含まれていることがあります。NotebookLMにアップロードしたソースコードは、AIモデルのトレーニングには利用されない設定になっています。

これは、プライバシーが守られたクローズドな環境で作業ができることを意味します。社外秘のロジックや特定の業務フローが含まれるコードであっても、情報の流出を気にせずに解析を任せられます。

マクロ作成を効率化するソースの追加手順

AIに賢い回答をさせるには、まず「正しい材料」を渡す必要があります。VBAエディタからコードを書き出し、関連する資料とともにNotebookLMへ投入しましょう。複数のモジュールを一箇所に集めることで、AIはプロジェクト全体の設計図を俯瞰して理解できるようになります。

1. モジュールを.basや.txt形式でエクスポートする

ExcelのVBAエディタ(VBE)を開き、プロジェクトエクスプローラーから各モジュールを右クリックして「ファイルのエクスポート」を実行します。これにより、コードがテキストベースのファイルとして保存されます。

  • 標準モジュール(.bas)やクラスモジュール(.cls)をエクスポートする
  • 複数のファイルをまとめてNotebookLMの「ソースを追加」からアップロードする
  • エクスポートが手間な場合は、コードをコピーしてテキストファイルに貼り付けても良い

ファイル形式を整えてアップロードすることで、AIはコードの区切りを正しく認識し、解析の精度が上がります。

2. 関連する仕様書や設計メモを一緒に投入する

コードだけでなく、そのマクロが本来どのような目的で作られたのかを記した仕様書やメモも一緒に読み込ませます。AIは「コードの記述」と「本来の目的」を突き合わせ、仕様に沿っていないバグを見つけやすくなります。

ワークシートの構成(どのセルに何が入っているか)を説明したメモを添えるのも有効です。周囲の情報を加えることで、AIは単なる文字列としてではなく、実務の道具としてコードを理解します。

3. ソースごとの役割をAIに認識させる

ソースを読み込ませた後、チャット欄で「それぞれのモジュールの役割を教えて」と質問してみましょう。AIが各ファイルの機能を正しく把握しているかを確認するためです。

もし誤解があれば、その場で「このモジュールはデータベース接続用です」と教えてあげてください。AIと共通認識を持つことで、その後のリファクタリング(コード整理)の提案がより的確になります。

複雑なVBAコードの論理構造を解析する

マクロが複雑化する原因は、処理がどこで始まり、どこで終わるのかが見えにくくなることにあります。NotebookLMを使えば、目視では追い切れないサブルーチンの呼び出し関係や、変数の動きを整理して可視化できます。ロジックの「渋滞」を解消し、スムーズな処理の流れを取り戻しましょう。

1. サブルーチンの呼び出し関係を可視化する

メインの処理からどのサブプロシージャが呼び出されているかをリストアップさせます。複雑なマクロでは呼び出しが階層化しているため、全体図を把握するだけで保守性が大きく向上します。

「このマクロの処理フローを階層構造で教えて」と指示を出してください。不要になった(どこからも呼ばれていない)死んだコードを見つけ出すのにも役立ちます。

2. 条件分岐のロジックを日本語で整理する

複雑なIf文やSelect Case文を、AIに「もし〇〇なら△△する」という自然な日本語に翻訳させます。条件が入り組んでいるほど、言葉で整理することで論理的なミスに気づきやすくなります。

以下のテーブルに、手作業とNotebookLMによる解析の違いをまとめました。

解析項目従来の手作業NotebookLMの活用
処理の流れコードを一行ずつ追うフローチャート形式で即座に要約
エラー特定ステップ実行で根気よく探す矛盾するロジックをAIが自動指摘
変数の追跡検索機能で一つずつ探す全モジュールを跨いで利用箇所を網羅
ドキュメント作成記憶を頼りに書き起こす解析結果から仕様書を自動生成

論理の整理をAIに任せることで、あなたは「より良い設計」を考えることに集中できます。

3. 変数のスコープと寿命を特定する

特定の変数がどこで定義され、どこで値が書き換えられているかを調査させます。意図しない場所で値が変わってしまうバグを防ぐために、変数の動きを把握することは不可欠です。

グローバル変数(Public変数)が多用されている場合、その影響範囲を特定させましょう。変数の動きを透明化することで、予期せぬエラーが起きにくい堅牢なマクロへと進化させられます。

コードを整理して保守性を高める

動けば良いという考えで作られたマクロは、後からの修正が困難です。NotebookLMに改善案を出させ、冗長なコードをまとめたり、分かりやすい名前を付け直したりすることで、コードの品質を高めましょう。綺麗なコードは実行速度の向上にも繋がり、将来の自分やチームメンバーが楽をできるようになります。

1. 冗長な記述を一つの関数に集約する

似たような処理が何度も出てくる場合、それらを共通の関数として切り出す提案をAIにさせます。コードの総行数を減らすことで、全体の見通しが良くなります。

「重複しているロジックを見つけて、共通関数にする案を出して」と指示してください。コードがスリムになることで、修正が必要になった際も一箇所の書き換えで済むようになります。

2. 意味が伝わる変数名への変更案を出す

「a」や「tmp」といった名前の変数ばかりだと、後で読んだ時に意味が分かりません。AIに処理内容にふさわしい、具体的で分かりやすい変数名を提案させましょう。

変数名の変更は、一括置換の機能と組み合わせることで安全に行えます。名前が適切になるだけで、コードの「読みやすさ」は劇的に向上します。

3. コメントが不足している箇所を補完する

処理の節目に、適切な日本語コメントを挿入させます。なぜその処理を行っているのかという「理由」をコメントに残すことで、将来のメンテナンスが格段に楽になります。

  • 複雑な計算式の意図を説明するコメントを入れる
  • 条件分岐の分岐条件を日本語で記述する
  • 引数や戻り値の意味をプロシージャの先頭に明記する

AIにコメントの下書きをさせれば、ドキュメント作成の手間を大幅に減らしながら、品質の高いコードを維持できます。

マクロ作成を楽にする具体的なプロンプト

AIから実用的なコードや解説を引き出すには、指示の出し方にコツがあります。目的を明確にしたプロンプトを投げることで、あなたのマクロ作成を強力にバックアップしてくれます。そのままコピーして、自分のコードに合わせて微調整して使ってみましょう。

1. バグの原因を特定させるプロンプト

エラーは出るものの、どこが悪いか分からない時に使う指示です。

あなたは優秀なVBAエンジニアです。
読み込んだソースコードにおいて、実行時エラーが発生する可能性がある箇所を特定してください。
特に、オブジェクトの参照(Set)や、データの型不一致が起きそうな部分を重点的に確認し、
修正案を具体的なコードで提示してください。

2. 処理速度を向上させるための改善プロンプト

マクロの動作が重いと感じる時に、最適化を求める指示です。

このマクロの実行速度を改善したいです。
ソースコードの中から、SelectやActivateを多用している箇所や、
ループ内での無駄なセルアクセスを特定してください。
配列を利用した高速な書き換え案を、元のロジックを維持したまま作成してください。

3. 処理の流れをドキュメント化するプロンプト

他人に説明するための資料を自動で作らせる指示です。

このVBAプロジェクト全体の構成図を、技術的な知識がない人でもわかるように日本語で作成してください。
どのボタンを押すとどの処理が始まり、最終的にどのような結果(ファイルの保存など)が得られるのかを
順を追って整理してください。

これらのプロンプトを「保存済みメモ」に入れておけば、いつでも再利用できます。

複数のモジュール間の依存関係を特定する

大規模なExcelツールでは、複数のモジュールが複雑に絡み合っています。一つの変数を変えただけで、全く別の場所でエラーが出ることも珍しくありません。NotebookLMにノートブック内の全ソースを跨いで検索させることで、目に見えない依存関係を漏れなく洗い出し、安全な改修を行いましょう。

1. グローバル変数が使われている箇所を網羅する

プロジェクト全体で共有されている変数が、どこで読み書きされているかを特定させます。これにより、予期せぬタイミングで値が書き換わってしまうトラブルを防げます。

「変数〇〇が使われている場所を、モジュール名を添えて全てリストアップして」と頼んでください。影響範囲が可視化されることで、安心してコードの変更に踏み切れます。

2. 外部ライブラリへの参照状況を確認する

Outlook連携やスクリプト実行など、特定のライブラリ(参照設定)が必要な箇所を見つけ出します。他人のPCで動かした時に「参照不可」で止まるのを防ぐために重要です。

参照設定が必要なオブジェクト(FileSystemObjectなど)の使用箇所をAIに特定させましょう。配布前の最終チェックとしてAIを活用することで、初歩的なミスをゼロにできます。

3. ワークシート名の直書き箇所を見つけ出す

コード内に「Sheets(“売上データ”)」のようにシート名が直接書かれている場所を探させます。シート名が変更されただけで動かなくなる「硬いコード」を修正するための第一歩です。

  • シート名を直接指定している箇所を抽出する
  • それらを定数(Const)やオブジェクト変数に置き換える案を出させる
  • シート名の変更に強い「柔らかいコード」へと修正する

直書き箇所をAIに洗い出させることで、改修作業の漏れを物理的に防ぐことが可能です。

引用機能を使ってコードの根拠を確認する

AIが提案した修正案が、本当に元のロジックに合っているか疑うことは大切です。NotebookLMの「引用」機能を使えば、AIの回答の根拠を1秒で確認できます。提案されたコードの隣にある番号をクリックし、ソース内の具体的な場所と照らし合わせる作業を習慣にしましょう。

1. 番号をクリックして該当行へジャンプする

AIの回答文に含まれる [1] などの番号をタップすると、画面右側のソースプレビューが自動的にスクロールし、根拠となったコードが表示されます。

自分でファイルを開いて検索する手間はもう不要です。「なぜAIはこの修正を提案したのか」という思考のプロセスを、元のコードと見比べながら理解できます。

2. AIの解釈と実際のコードの齟齬を防ぐ

AIが変数名を勘違いしたり、処理の順番を読み違えたりしていないか、ハイライトされた原文で確認します。AIは完璧ではないため、この「裏取り」が最終的な品質を決めます。

もし間違いを見つけたら「引用[1]の箇所は〇〇ではなく△△という意図です」とチャットで指摘してください。対話を重ねることで、AIの解析精度はあなたのコードに対して最適化されていきます。

3. 修正が必要な物理的な場所を特定する

AIが示した引用箇所を参考に、実際のExcelのVBAエディタで修正すべき場所を特定します。ファイル名と行の周辺情報をAIが教えてくれるため、迷わずに作業ができます。

以下のテーブルに、引用機能の活用手順をまとめました。

手順操作内容得られるメリット
1. 番号確認回答文の中の引用番号をクリック根拠となるソースへ即座に移動
2. 原文照合ハイライトされたコードと回答を見比べるAIの解釈の正しさを検証できる
3. エディタ反映VBEを開き、特定された箇所を修正する修正場所を探す時間を最小化

「AIの提案」と「実際のコード」を繋ぐ架け橋として、引用機能を使い倒しましょう。

チームでVBAのナレッジを共有する設定

あなたが作ったマクロを他の人もメンテナンスできるように、NotebookLMでナレッジベースを作成しましょう。ソースコードと解説をまとめたノートブックをチームで共有すれば、誰でもAIに仕様を質問できるようになります。個別の問い合わせ対応に時間を奪われることがなくなり、チーム全体の技術レベルを底上げできます。

1. 閲覧権限と編集権限を適切に分ける

共有設定では、相手の役割に応じて権限を選びます。中身を読んで質問するだけのメンバーには「閲覧者」を、一緒にコードを改善するメンバーには「編集者」を付与します。

Googleドライブと同じ感覚で、メールアドレスを指定して招待するだけです。権限を適切に管理することで、意図しないソースの削除や改変を防ぎながら、安全に知識を共有できます。

2. 共有リンクを使ってナレッジを配布する

作成したノートブックのURLを、チームのチャットやドキュメントに貼り付けます。新しいメンバーが加わった際も、そのURLを渡すだけで「マクロの仕様書」を渡したことと同じ効果が得られます。

「このマクロで〇〇をしたい時はどこを変えればいい?」とAIに聞くように促しましょう。あなたの手を煩わせることなく、AIが24時間体制でマクロの解説を行ってくれます。

3. プロジェクト終了後にデータを消去するルール

役割が終わったノートブックや、古いバージョンのコードは適切に削除しましょう。クラウド上に不要なデータを残さないことは、セキュリティを守るための基本動作です。

  • 改修が終わった古いコードのソースを削除する
  • プロジェクトが完結したらノートブック自体を削除する
  • 定期的に共有メンバーを見直し、不要なアクセス権を外す

情報の「出口」を管理することで、安全性を保ちながら最新の知見だけが流通する環境を維持できます。

VBAのデバッグとエラー対策を高速化する

マクロを実行して「エラー1004」などが出た時、その原因を自力で探すのは時間がかかります。NotebookLMにエラー内容と関連するモジュールを読み込ませ、原因を逆引きさせましょう。AIはソース内のロジックを把握しているため、単なるエラーの意味だけでなく、「あなたのコードのどこが原因か」を具体的に教えてくれます。

1. エラーの原因をソースから逆引きする

エラーメッセージと、その時ハイライトされた一行をコピーしてAIに渡します。AIは読み込んでいるソースの中から、そのエラーを引き起こしそうな箇所の記述を特定します。

「このエラーが出る可能性のある、変数やオブジェクトの未定義箇所を探して」と指示してください。マクロのあちこちにデバッグ用のメッセージボックスを仕込む手間が省けます。

2. 実行環境の違いによる不具合を特定する

自分のPCでは動くのに、他の人のPCでは動かないというトラブルはVBAでよく起こります。OSのバージョンやExcelのビット数(32bit/64bit)によるAPI宣言の違いなどをAIにチェックさせましょう。

「64ビット版のExcelで動かすために修正が必要な箇所をリストアップして」といった指示が有効です。環境依存のバグを事前に洗い出し、誰の環境でも動く「強いマクロ」を作成できます。

3. 異常終了を防ぐためのエラーハンドリングを追加する

不測の事態でマクロが止まらないよう、適切なエラー処理(On Error GoToなど)をどこに入れるべきか提案させます。ユーザーにとって親切なエラーメッセージを表示させる仕組みを作ることができます。

  • ファイルが見つからない時の処理を追加する
  • 入力値が不正な場合のガード条件を提案させる
  • エラー発生時に途中で止まった処理を安全に終了させる

堅牢なエラー対策をAIと一緒に構築することで、あなたの作ったツールの信頼性は格段に高まります。

稼ぐためのマクロ作成効率化術

マクロ作成のスピードを上げることは、そのままあなたの「稼ぐ力」に直結します。NotebookLMをリサーチと構造化のエンジンとして使い倒し、開発時間を大幅に削減しましょう。浮いた時間をより高度なシステム設計や、別の案件獲得に充てることで、時間あたりの単価を最大化させることが可能になります。

1. 定型的な処理をテンプレート化して保存する

よく使う「ファイルを開く」「データを集計する」といった処理を、AIに整理させて「自分用の部品集」として保存しておきます。新しい案件が来た際、その部品を組み合わせるだけで土台が完成します。

過去の優れたコードをソースとしてNotebookLMに入れておけば、いつでも再利用可能な形で引き出せます。ゼロから書く時間を削り、パズルのようにコードを組み立てる体制を整えましょう。

2. 過去の成功パターンをソースに加えて再利用する

過去にトラブルを乗り越えて完成させたマクロを、将来の自分のために蓄積しておきます。似たような要望が来た際、「以前のプロジェクトAでのロジックを、今回の案件Bに移植して」と指示できます。

AIは過去のコードを覚えているため、現在の要件に合わせて自動で調整してくれます。経験を積み重ねるほど、AIという武器はあなたの好みに合わせて研ぎ澄まされていきます。

3. 空いた時間でより単価の高い設計業務に集中する

コーディングという作業をAIに任せることで、あなたは「何を作るか」「どう解決するか」という上流工程の設計に専念できます。顧客の真の悩みを解決する提案に時間を使いましょう。

  • 複雑な業務フローのコンサルティングを行う
  • 複数のツールを組み合わせた自動化システムを構築する
  • ユーザーインターフェース(UI)の使いやすさを追求する

作業者から設計者へと立ち位置を変えることが、AI時代のエンジニアとして生き残り、稼ぎ続けるための鍵となります。

まとめ:NotebookLMでVBAコードの品質と速度を両立させる

NotebookLMを活用すれば、複雑なVBAコードの解読から整理、デバッグまでを一貫して効率化できます。Gemini 1.5 Proの圧倒的な理解力を借りてスパゲッティコードを解きほぐし、引用機能で正確性を裏取ることで、保守性の高いマクロを驚くべき速さで完成させられます。

AIにコードを読み込ませることで、あなたは孤独なデバッグ作業から解放され、よりクリエイティブな開発に没頭できるようになります。まずは、手元にある「一番直したいけれど触るのが怖いコード」をNotebookLMに放り込むことから始めてみてください。

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

この記事を書いた人

目次