ChatGPTはマクロを作るうえで必須のツール!
今回から全5回にわたって、ChatGPTをつかったExcelマクロのつくり方について解説していきます。
第1回となる今回は、マクロの基礎知識からはじめて、ChatGPTがどのようにマクロ作成をサポートしてくれるのかを見ていきます。
マクロは業務効率化の強い味方
Excelマクロとは、くりかえして行う操作を自動化するためのプログラムです。
例えば次のような作業を自動化できます。
✔ マクロで自動化する操作の例
・ 複数のシートやファイルからデータを収集する
・ 決まったフォーマットでレポートを作成する
・ データの加工や集計を行う
・ 複雑な条件での検索や置換
・ 日付を含むファイル名での保存

私たちは日々、同じような作業をくりかえしています。
例えば「データベースからコピーして別のExcelに貼り付け、日付を入れてファイル名を付ける」といった作業。
このようなくりかえし作業をマクロで自動化すれば、時間の節約だけでなく、ミスの削減にもつながります。
マクロの2つの作成方法:記録機能とVBA
Excelでマクロを作成する方法は主に2つあります。
マクロの記録機能
Excel画面上での操作を「記録」して、それをマクロとして保存する方法です。
✔ マクロの記録機能の特徴
メリット:プログラミングの知識がなくても作成できる
デメリット:複雑な処理や条件分岐は難しい
VBA(Visual Basic for Applications)でのコーディング
Excel内蔵のプログラミング言語でコードを書く方法です。
✔ コーディングの特徴
メリット:複雑な処理や条件分岐が可能
デメリット:プログラミングの知識が必要
これまで、特に2つ目のVBAコーディングはプログラミングの知識がないと難しいものでした。
しかし、ChatGPTの登場により、状況は大きく変わりました。
ChatGPTがマクロ作成を変える
ChatGPTを使うことで、プログラミングの知識がなくても、目的を伝えるだけでVBAコードを生成できるようになりました。
例えば、以下のような指示を出すだけで、ChatGPTは必要なコードを生成してくれます。
Excelで、A列のデータをB列に転記して、各セルの先頭に『確認済:』と付けるマクロを作りたい
実際のコード例はこのようになります。
vbaSub 転記して接頭辞追加()
Dim lastRow As Long
Dim i As Long
‘ 最終行を取得
lastRow = Cells(Rows.Count, 1).End(xlUp).Row
‘ A列の各セルに対して処理
For i = 1 To lastRow
Cells(i, 2).Value = “確認済:” & Cells(i, 1).Value
Next i
MsgBox “転記が完了しました。”, vbInformation
End Sub
このコードをマクロとして登録するだけで、A列のデータをB列に「確認済:」という接頭辞付きで転記できます。

ChatGPTに、具体的に何をしたいのかを明確に伝えることがポイント。
マクロを動かすための設定
Excelでマクロを使うためには、いくつかの設定が必要です。
マクロを含むExcelファイルの拡張子
マクロを登録するExcelの拡張子には、.xlsm(マクロ有効ブック)を使用します。

.xlsxではマクロは動作しません。
セキュリティ設定の確認
Officeファイル(WordやExcel等のファイル)にウィルスが含まれていて、マクロの実行により感染するものがあります。
マクロの実行を無効化しておくことで被害を防げることがあります。
「ファイル」→「オプション」→「セキュリティセンター」→「セキュリティセンターの設定」→「マクロの設定」と選択していきます。
「警告を表示してすべてのマクロを無効にする」か「デジタル署名されたマクロを除き、すべてのマクロを無効にする」を選択し、つかうマクロを個別に有効にする方法が一般的です。
開発タブの表示
開発タブは常に表示させておきましょう。
「ファイル」→「オプション」→「リボンのユーザー設定」
「開発」にチェックを入れる
実習:簡単なマクロを作成してみよう
それでは、ChatGPTを使ってかんたんなマクロを作成してみましょう。

以下の手順で進めます。
マクロの目的を明確にする
ChatGPTに指示をだすまえに、マクロの目的を明確にしておきます。
例:「選択したセルに今日の日付を入力するマクロ」
ChatGPTにマクロ作成の指示を出す
例:「Excelで、選択しているセルに今日の日付を入力するマクロのVBAコードを教えてください」
そして、「開発」タブ→「Visual Basic」をクリック
「挿入」→「標準モジュール」をクリック
モジュールの枠に、生成されたコードを貼り付けます。
作ったマクロを実行する
VBEを閉じ、マクロ操作したいセルを選択します。
「開発」タブ→「マクロ」をクリックし、作成したマクロを選択して「実行」を選択します。
例えば、ChatGPTは以下のようなコードを提案するかもしれません。
vbaSub 今日の日付を入力()
‘ 選択されているセルに今日の日付を入力します
ActiveCell.Value = Date
End Sub
このコードを実行すると、選択したセルに今日の日付が入力されます。

とても簡単ですね!
まとめ
今回は、Excelマクロの基本とChatGPTを活用したマクロ作成の概要について説明しました。
✔ マクロとChatGPTによるコーディングのポイント
・ マクロは繰り返し作業の自動化に役立つ
・ マクロ記録機能とVBAコーディングがある
・ ChatGPTで簡単にVBAコードが生成できる
・ マクロは.xlsm形式でファイルを保存する
次回は「実践編:データ転記ツールの作り方ステップバイステップ」として、実際の業務で使える転記ツールの作成方法を解説します。
おまけ:よくある質問と回答
勉強会でよく出る質問とその回答をまとめておきます。
Q: マクロはウイルスになる可能性がありますか?
A: マクロにはコードが含まれるため、悪意のあるコードが含まれていると危険です。信頼できる作成者のマクロのみを使用し、不明なソースからのマクロは実行しないようにしましょう。
Q: ChatGPTが生成したコードは信頼できますか?
A: ChatGPTは基本的に安全なコードを生成しますが、必ずしも最適化されているとは限りません。可能であれば、コードの意味を理解し、必要に応じて修正することをお勧めします。
Q: マクロの実行が遅い場合はどうすればいいですか?
A: 大量のデータを処理する場合、計算をオフにする、画面更新を停止するなどの最適化テクニックがあります。
→テクニックについては後の回で詳しく解説します。
コメント