記事公開日
最終更新日
Copilot for Microsoft365でExcelのマクロ作成を効率化しよう

今回はExcelのCopilot機能について紹介いたします。
ExcelのMicrosoft Copilotを使用すると数式列の候補を生成したり、グラフやピボットテーブルで分析情報を表示するなどExcel業務をより簡単に活用することができます。
そんなExcel業務の中でExcel VBA(Visual Basic for Applications)を利用した手作業の削減と業務効率化を実現している企業も多いと思います。
ただし、VBAはソースコードを記述する必要があるため、知識が無いと運用に取り込むことが難しいという問題があります。
そのため、Copilot機能を利用してVBAのソースコードを自動生成し、簡単に動作させることが出来るか検証したいと思います。
※ ExcelのCopilot機能は2024/2/27時点ではプレビュー機能です。
ExcelのCopilot機能を使用するうえでの前提条件について
Excelファイルの保存先
以下赤枠の通り、Copilot for Microsoft365のライセンスが有効化されているユーザーがExcelを開くとCopilotのメニューが表示されます。ただし、以下画像ではCopilotのメニューがグレーアウトし使用することができません。

原因は画像内のメッセージ通りPCのローカル上では無く、OneDriveまたは、SharePointに保存されているファイルのみ利用することができます。
そのため、以下画像の通りOneDrive上にExcelファイルを保存します。
※ 今回はVBAマクロを動作させるため、マクロ有効ブック(xlsm)形式で保存します。

Copilotでサポートを受ける対象
Copilotでサポートを受けることが可能なExcelのオブジェクトはテーブルが対象です。
そのため、2009年の国別人口・面積・人口密度一覧表(出典:Wikipedia)を記載したテーブル(表)を用意し、本テーブルをマウスで選択したうえで、Copilotのサポートを受けたいと思います。

Excel VBAコードの自動生成
Copilotを使用する準備が整ったので、実際に利用したいと思います。今回は検証として簡単なプログラムを生成します。
期待する動作としては、表の上から「国名」をチェックし、"日本"だった場合は「人口」をメッセージボックスで表示する内容です。

では、Copilotに指示してみましょう。
指示するのは、以下内容です。
指示した結果、ソースコードが案内されたので実際に動かしてみましたが、メッセージボックスは表示されませんでした。。。
これは、セル指定が数値(Rows.Count,1)で指定されていますが「国名」はBセル、すなわち2番目であるため「国名」の値が取得できなかったことが原因となります。
うーん、少し残念ですね。
もう少し具体的に指示をする必要がありそうです。
では、具体性を出すためにテーブル名を指定して指示してみます。
指示した結果、別のソースコードが案内されました。
今回は"tbl=テーブルオブジェクト"を使用し、テーブルの列が1番目(tbl.DataBodyRange(i,1))が指定できています。
では、実際に動かしてみましょう。
無事、メッセージボックスに"日本"の人口が表示されました!
指示の仕方にコツがいりますが、自動生成されるソースコードとしては精度は高いと思います。
まとめ
いかがでしたでしょうか、本機能を使用すれば「やりたいことが分かるのにソースコードが書けない!!」という方が簡単にVBAのマクロを作成することが出来るので、業務を効率化することができます。また、ChatGPTでもソースコードの生成は可能ですが、Excelシート内のテーブルや記載内容が考慮されたソースコードが生成される部分はとても優れていると感じました。
次回はWEB会議(Microsoft Teams)とCopilotの機能について紹介しようと思います。
※このブログで参照されている、Microsoft、Windows、Microsoft Azure、その他のマイクロソフト製品およびサービスは、米国およびその他の国におけるマイクロソフトの商標または登録商標です。