マクロ(VBA)の知識が皆無の筆者が、ChatGPTによりマクロ(VBA)を作成し、月20h以上の残業時間削減を達成したので、仕事効率をアップする手法を簡単に紹介します。
ChatGPTによりマクロ(VBA)を作成し、月20h以上の残業時間削減を達成!!
- 職 種:土木系技術職(勤続15年⋯中堅技術者)
- 仕事内容:現地調査・計測管理・数値解析など
- 専門知識:土木工学系の知識のみ(VBAなどのプログラミング言語は素人レベル)

同じような作業だけど、楽にならないかな???



マクロ(VBA)を使えば、仕事を効率化できるよ!!



VBA?プログラミングなんか分からないよ。



大丈夫!ChatGPTを使えば、仕事でも簡単に使えるよ!
Excelのマクロ機能(VBA)は多くの効率化を約束してくれますが、その設定が複雑で手間がかかるため、多くの人がその利用を躊躇しています。しかし、ChatGPTのような先進的なAI技術を利用することで、これらの障壁が取り除かれ、誰でも簡単にマクロを作成し、日々の作業を自動化することが可能になります。
- マクロを簡単に使えるようになりたいと思っている人
- ChatGPTの活用の仕方がわからない人
- 仕事を効率化を進めたいと思っている人
この記事では、ChatGPTを活用してExcelマクロを効率良く作成する方法を、具体的な例とともに解説します。
マクロはChatGPTを使えば簡単につくれる!!
マクロは、Excelで繰り返し行う作業を自動化できる便利な機能ですが、「難しそう」「プログラミングが必要」というイメージから、初心者にはハードルが高いと感じられがち。
でも実は、ChatGPTを使えば簡単にマクロを作れるようになります。特に、具体的な手順がわからなくても「こういう作業を自動化したい」と伝えるだけで、必要なコードを生成してくれるので、初心者でも安心です。



このデータを別のシートにコピーしたい。簡単にできる方法ないかな?



毎日、同じ形式でレポートを作るのが大変。楽な方法ない?
例えば、上記のような悩みがあるとします。ChatGPTにその内容を伝えるだけで、数分以内に使えるコードを教えてくれます。さらに、エラーや不明点があれば、それもChatGPTに聞くだけで解決できます。複雑な知識は不要です。
この仕組みを活用すれば、面倒な作業がボタン一つで完了するようになり、作業時間が大幅に短縮されます。 「難しいコードを書く必要はない」という点を強調しつつ、誰でも手軽に始められるマクロの世界をぜひ体験してみてください!
ChatGPTとは?マクロとは?
ChatGPTとは?
ChatGPT-4は、非営利法人であるOpenAI(米国企業)が開発した生成AIの一種で、大量のテキストデータを学習しています。チャット形式で指示を出すと、その指示にこたえる形で文章を生成してくれます。
- 知識豊富: 幅広いテーマについて情報を有する
- 多機能: 文章作成、翻訳、データ分析、コードのサポートなど
- 対話形式: 人間のような自然な会話が可能
- 効率的なサポート: 問題解決やタスク管理の支援など
- 学びのパートナー: プログラミングや新しいスキルの習得、趣味のサポート
簡単に言えば、便利で賢いデジタルアシスタントと考えてもらえればいいです!初めての人もすぐに使いこなせるシンプルさが特徴です。
ChatGPTは、メールアドレスがあればアカウント登録が使用可能。
ただし、利用規約には、年齢制限についての記載があります!
・13 歳以上、またはお住まいの国で定められた最低年齢に達している必要がある
・18歳未満は保護者(親または法定後見人)の許可が必要
マクロ機能とは?
エクセルのマクロ機能とは、繰り返し行う操作や複雑な手作業を自動化できる機能です。ユーザーが行った操作を記録し、それを後で繰り返すことができます。また、VBA(Visual Basic for Applications)というプログラミング言語を使うことで、より柔軟で高度な処理を実現できます。
具体的には以下のような作業を簡単に自動化できます。
この機能を使うと作業効率が大幅に向上し、ミスも減らせるため、事務作業やデータ分析において非常に便利です。
- データのコピー&貼り付け:特定の範囲を他の場所に自動でコピー。
- データ整理:条件に基づいて並べ替えやフィルタを実行。
- レポート作成:集計やグラフ作成を一瞬で完了。
- 複数ファイルの処理:複数のExcelファイルを一括で操作。
思い通りのマクロ実行までのロードマップ
ChatGPTやマクロは非常に便利なツールですが、私達の要望が伝わらないと期待した成果を出してくれません。
通常の仕事でも作業を依頼する場合には、目的やゴールイメージを正確に伝えるが必要あると思います。それは、生成AIであるChatGPTでも丁寧に指示する必要があります。
STEP1:タスクの抽出
マクロの作成前に作業に入る前に、まずは箇条書きで、自動化したい項目を抽出してください。たとえば、新しくグラフを作成したいと思ったときは、下記のような自動化したい項目になります。
- グラフのタイトルは指定
- 3つのデータ(系列)を作成
- 散布図(グラフ)を新規に作成
- 横軸と縦軸の値を指定
- マーカーの種類を指定
STEP2:作業順序の整理
STEP2では、自動化したい項目を手作業でやる順番に並び替えます。ChatGPTでは、順番が前後していても上手く修正してくれますが、稀にマクロが動かないので、重要な作業です。
- 散布図(グラフ)を新規に作成
- 3つのデータ(系列)を作成
- マーカーの種類を指定
- グラフのタイトルは指定
- 横軸と縦軸の値を指定
STEP3:詳細な情報を追加
STEP2では作業順序は整理できたましたが、漠然とした内容です。細かい要望がある場合には、その詳細な情報を追加していきます。
赤字の詳細な情報を追加します。
- 散布図(グラフ)を新規に作成 + 作成場所(Sheet名)の指定
- 3つのデータ(系列)を作成 + データの場所の指定
- マーカーの種類を指定 + マーカ種類(◯・△・□)
- グラフのタイトルは指定 + グラフタイトルは〇〇のセルを参照
- 横軸と縦軸の値を指定 + 各軸の最低値・最大値の設定
STEP4:ChatGPTの活用
STEP4では、ChatGPTにマクロの作成をお願いしましょう。
プロンプト(指示文)は、STEP3で作成した箇条書きをコピー&ペーストするだけでも、VBAコードを作成してくれます。
赤字の詳細な情報を追加します。
- 現在開いているSheetに散布図を作成
- X軸はA2:A10で、Y軸はB2:D10列(B〜Dの各列でグラフ)
- マーカーは、「◯・△・□」の順で作成
- グラフのタイトルは、A1を参照
- 軸のメモリは0〜100、Y軸目盛りは0~100
作成されたVBAコード
Sub CreateScatterChartWithMarkers()
Dim ws As Worksheet
Dim chartObj As ChartObject
Dim chart As Chart
Dim series As Series
Dim i As Integer
Dim markers As Variant
‘ マーカーの種類(◯, △, □)
markers = Array(xlMarkerStyleCircle, xlMarkerStyleTriangle, xlMarkerStyleSquare)
‘ 現在開いているシートを取得
Set ws = ActiveSheet
‘ グラフオブジェクトを作成
Set chartObj = ws.ChartObjects.Add(Left:=100, Width:=400, Top:=50, Height:=300)
Set chart = chartObj.Chart
‘ グラフタイプを散布図に設定
chart.ChartType = xlXYScatter
‘ データ範囲を設定
For i = 2 To 4 ‘ B列からD列まで(2列目〜4列目)
Set series = chart.SeriesCollection.NewSeries
series.XValues = ws.Range(“A2:A10”) ‘ X軸データ
series.Values = ws.Range(ws.Cells(2, i), ws.Cells(10, i)) ‘ Y軸データ
series.Name = ws.Cells(1, i).Value ‘ シリーズ名を設定(必要なら)
series.MarkerStyle = markers(i – 2) ‘ マーカーを設定
Next i
‘ グラフタイトルを設定
chart.HasTitle = True
chart.ChartTitle.Text = ws.Range(“A1”).Value
‘ X軸とY軸の目盛り範囲を設定
With chart.Axes(xlCategory)
.MinimumScale = 0
.MaximumScale = 100
End With
With chart.Axes(xlValue)
.MinimumScale = 0
.MaximumScale = 100
End With
‘ グラフの位置調整(必要なら)
chartObj.Left = 100
chartObj.Top = 100
MsgBox “散布図が作成されました!”
End Sub
STEP5:マクロの実行
エクセルを開き、下記の作業を実行します。
Alt + F11を押してVBAエディタ起動(Mac:Option + F11)- メニューから「挿入」→「標準モジュール」を選択
- 新しいモジュール作成し、前述のコードの貼り付け
Alt + F8でマクロの実行ウィンドウを開く- コード名「例:CreateScatterChart」を選択し、実行
うまくいかなかったときの対処法
ChatGPTに作成してくれたマクロでも、実行時のエラーはよくあることです。私は思うように以下なったときは、下記の順番で対処しています。
ChaGPTに対処法を聞く
マクロを実行時には、うまく動作しない場合には”実行時エラー”のウィンドウが出ることがあります。エラー事例や思ったように動作しない場合は、ChatGPTにエラー報告事例と対処法を聞いてみましょう。大抵の場合は、解決することが多いです。




・この画面出てきたら、デバッグボをクリック
(デバック:エラーや問題を特定し、修正するプロセス)
・VBAコードで黄色ハッチングされている箇所を確認する。
・ChatGPTに、エラー部分を報告(Set ws = ActiveSheet2)
⇒
今回の修正点は、Set ws = ActiveSheetが正しいと回答。
VBAコードの確認
VBAコードに記載されている「説明文だけを確認(画像の緑文字)」できるだけで良いと思います。経験を積んでいくと、エラーの理由やコードの意味も少しづつ理解できます。
・VBAコードを開き、「説明文(緑文字)」を確認
・指示内容との整合確認
・参照がずれていないかの確認


5w1H
実際にChatGPTにVBAコードに書いてあるプロンプト(指示文)に、情報が抜けていないかを改めて確認します。私は、「5W1H」とは、情報収集や問題解決、計画の策定などにおいて、重要な要素を明確にするためのフレームワークを活用しています。
下記のことを意識して、ChatGPTに質問すると改善する場合があります。
- Who :誰がこのマクロを使用するのか?
- What : どのようなタスクを自動化 or 問題を解決するのか?
- Where:どのExcelブック、シート、データ範囲で動作するのか?
- When:このマクロはいつ実行されるべきか?
- Why:タスクを自動化などの作成の目的や背景は?
- How:条件分岐はないか?
まとめ
Excelのマクロ機能を使えば、繰り返し行う作業を自動化し、効率を大幅に向上させることができます。しかし、多くの初心者にとって、プログラミング言語を使用することは大きなハードルです。この問題を解決するために、ChatGPTの活用が非常に有効です。
ChatGPTを利用することで、複雑なコードを理解する必要なく、自動化したい作業を簡単に指示でき、すぐに使えるマクロを生成してもらうことが可能です。
具体的には、データのコピー&ペースト、日々のレポート作成などの日常的な作業を効率化するために、ChatGPTに具体的な作業内容を伝えるだけで、必要なVBAコードが生成されます。さらに、エラーが発生した際も、ChatGPTに問題点を伝えることで迅速に対処法を得ることができます。
このように、ChatGPTとマクロ機能を組み合わせることで、作業の自動化が簡単かつ迅速に実現できるため、Excel作業における時間の節約と精度の向上が期待できます。
エクセル作業におけるストレスを軽減し、より創造的な業務に集中できるようになります。プログラミング経験がない方でも安心して始められるため、是非この方法を試してみてください。










コメント