エクセルでマクロを書いている時、こんな問題にぶつかることありませんか?
あれ?これどうやって書いたらいいんだろ?
どんな関数を使って、引数に何を指定すればいいんだろ??
以前なら、Googleで1つずつ調べることが多かったです。
やりたいことを実現するにはどの関数を使えばいいのか?
その関数はどうやって使うのか?引数に何を指定すればいいのか?
この引数の意味は?
1つずつ調べると、まあまあ時間がかかりますよね。
でも、今はChatGPTというものがあります。
ChatGPTを使えば、ほぼ一瞬で答えがわかります。
めちゃくちゃ便利です。
というわけで、ChatGPTにエクセルのマクロを作ってもらいました。
ChatGPTについて
ChatGPTに作ってもらったマクロを紹介する前に、少しだけChatGPTについて触れておきます。
せっかくなのでChatGPTに教えてもらいました。
- Q[ChatGPTへの質問] ChatGPTとは?
- A
ChatGPTは、OpenAIによって開発された対話型の言語モデルです。ChatGPTは、GPT(Generative Pre-trained Transformer)のアーキテクチャを基にしており、大量のテキストデータを学習して、様々な言語タスクに対して優れた性能を発揮することができます。
GPTモデルは、事前に大規模なデータセットで学習され、その後、特定のタスクにFine-tuningされることが一般的です。ChatGPTは、自然言語処理のタスクにおいてテキスト生成、質問応答、文章の要約、言語理解など、幅広い用途で活用されています。
ChatGPTはユーザーとの自然な対話をサポートし、質問への回答や情報提供、テキスト生成など、多岐にわたるタスクに対して有用なツールとして使われています。
ChatGPTの回答より
- Q[ChatGPTへの質問] ChatGPTはいつから使えるようになった?
- A
最初のChatGPTモデルは、2020年6月にリリースされました。その初期のバージョンは「ChatGPT」や「GPT-3」として知られています。その後も、OpenAIはモデルの改良や新しいバージョンの開発を進めています。現在、ChatGPTやそれに類するモデルは様々なアプリケーションで使用され、プログラムの開発、対話型インターフェースの構築、自然言語処理の研究などに役立てられています。
ChatGPTの回答より
ChatGPTが作成したエクセルマクロのコード
では、本題です。
ChatGPTにエクセルマクロの作成を2つお願いしてみました。
[依頼①] Excel VBAで全てのピボットテーブルを更新するコードを書いて
[回答①]ChatGPTが作成したエクセルマクロ
Sub UpdateAllPivotTables()
Dim ws As Worksheet
Dim pt As PivotTable
' すべてのワークシートを対象にする場合
For Each ws In ThisWorkbook.Worksheets
For Each pt In ws.PivotTables
pt.RefreshTable
Next pt
Next ws
' 特定のワークシートの場合(例: Sheet1)
'For Each pt In Sheets("Sheet1").PivotTables
' pt.RefreshTable
'Next pt
End Sub
[依頼②] ピボットテーブルで任意の列でソートするVBAコードを書いて
[回答②]ChatGPTが作成したエクセルマクロ
Sub SortPivotTable(pivotTableName As String, sortColumn As String)
Dim ws As Worksheet
Dim pt As PivotTable
Dim pf As PivotField
' ピボットテーブルが存在するか確認
On Error Resume Next
Set pt = ActiveSheet.PivotTables(pivotTableName)
On Error GoTo 0
If pt Is Nothing Then
MsgBox "指定された名前のピボットテーブルが見つかりません。", vbExclamation
Exit Sub
End If
' ソート対象の列が存在するか確認
On Error Resume Next
Set pf = pt.PivotFields(sortColumn)
On Error GoTo 0
If pf Is Nothing Then
MsgBox "指定された名前の列が見つかりません。", vbExclamation
Exit Sub
End If
' ソートを実行
pf.AutoSort xlAscending, sortColumn
End Sub
すごいですね。
このまま使えるレベルでコードが生成されています。
しかもコメントがきちんと書かれているのでメンテナンス性も良さそうです。
ChatGPTの使い方
ChatGPTに登録する
ChatGPTのアカウントを作っていない人は、最初にサインアップ(アカウント作成)が必要です。
お金のかからないフリーアカウントが使えるのでご安心を。
- 1ChatGPTサイトを開く
- 2「Sign up」ボタンをクリックする
※既にアカウントを作っている場合は、「Log in」ボタンをクリックする
- 3Email Addressを新規登録、またはGoogle/Microsoft/Appleのアカウントを使ってサインアップする
ChatGPTに質問する
ChaGPTのサインアップが終わったらログインしてください。
ログインすると、下の画面が出るので赤枠部分に質問を書きます。
質問を書いてEnterキーを押せば、あとはChatGPTがスルスルッと答えてくれます。

ChatGPTでエクセルマクロを作るメリット
上で見たようにChatGPTが作るエクセルマクロは、ほぼそのまま使えます。
そのコードを見て私が感じた「ChatGPTを使うメリット」をまとめておきます。
ChatGPTが作成したエクセルマクロを使うときの注意事項
そのまま使えるレベルだと言っても、最終的にそのプログラムを使う責任はあなた自身にあります。
ですので、ChatGPTが作成したマクロをそのまま鵜呑みにせず、問題がないことを確認するようにしましょう。
そう考えるとExcel VBA/マクロでプログラムを書く知識/スキルは必要です。
ChatGPTがあるからと言って「もう勉強しなくても、覚えなくてもいいんだ!」とはならないと思います。
まとめ
- ChatGPTで作成したエクセルマクロを紹介した
- ChatGPTの登録方法やメリットを述べた
- ChatGPTが作るエクセルマクロはそのまま使えるレベルだが、使用するのは自己責任であることに注意したい
ChatGPTはとても便利ですし、とても優秀です。
上手に使って、サクッと短時間でエクセルマクロを作れるといいですね。
コードをどうやって書いたらいいかわからない、どんな関数をどうやって使えばいいかわからない。
そんな時ChatGPTに聞いて教えてもらうといいんじゃないでしょうか。
コメント