ChatGPTを使用して、エクセルマクロを作成する方法第一弾をご紹介します。
今回はエクセル内のデータシートから特定のデータを抜き出して、集計シートにまとめるといった簡単なマクロを作成します。
目的とするものはこんな感じのマクロです。
ある程度のVBA知識は必要になりますが、コードが書けないという方にもできる方法です。
私自身VBAに関してはほとんど初心者ですので、
VBA初心者の方でもできるような内容になっています。
さて、いきなりやり方になります。
やり方は簡単で、
①Chat GPTにやりたいことを文章で記入する
②出力されたコードをコピペする
③必要であればファイル名など微修正を行う
④作動させる
⑤異常があれば、Chat GPTに変更をお願いする
無理そうなら、質問文を大きく変えてみるといい
⑥問題なければ完了!!!
非常に簡単ですよね!
ここで重要なのが、
どういった文章で質問するか
です。
実際にChat GPTに聞いてみた質問は下記になります。
エクセル内の集計シートにその他すべてのシートのデータを転記するマクロを作成する
・集計シートのB1に1つ目のシートのシート名を出力
・1つ目のシートのB2:B13のデータを抜き出して、B2:B14に出力データを貼り付け
・集計シートのC1に2つ目のシートのシート名を出力
・2つ目のシートのB2:B13のデータを抜き出して、C2:C14に出力データを貼り付け以降のシートも同様に操作する
この文章に対する解答が下記マクロです。
Sub 転記マクロ()
Dim aggregateSheet As Worksheet
Set aggregateSheet = ThisWorkbook.Sheets(“集計シート“) ‘ 集計シートを指定
Dim sourceSheet As Worksheet
Dim targetColumn As Integer
Dim i As Integer
targetColumn = 2 ‘ 集計シートのB列から始める
For i = 1 To ThisWorkbook.Sheets.Count ‘ 全てのシートに対してループ
If ThisWorkbook.Sheets(i).Name <> “集計シート” Then ‘ 集計シート以外の場合
Set sourceSheet = ThisWorkbook.Sheets(i)
‘ シート名を出力
aggregateSheet.Cells(1, targetColumn).Value = sourceSheet.Name
‘ データを転記
sourceSheet.Range(“B2:B13”).Copy
aggregateSheet.Cells(2, targetColumn).PasteSpecial xlPasteValues
Application.CutCopyMode = False
targetColumn = targetColumn + 1 ‘ 列を次に進める
End If
Next i
End Sub
このコードを動かすには「集計シート」というシートが必要なので、シート名の1つを「集計シート」に変更します。
その後、このコードを
開発 ⇨ Visual Basic
にコピーペーストしてマクロを実行すると、
実際に問題なく動作しました!
※これができる前に何度か失敗しています。
※難しい場合はいろんな文章で実施してみるといつか成功すると思います。
さらに、マクロを微修正したいと思った場合には
そのままChat GPTに修正したい部分を伝えると、
変更したマクロが出力されます。
以上になります。
今回はChat GPTを使用して各シート内のデータを
集計シートにまとめるマクロを作成しました。
初心者でも無料で簡単に出来る方法ですので
ぜひ試してみてください。