1. はじめに
「面倒なルーティンワークを自動化したいけれど、プログラミングは難しそう…」
そう思っていませんか?
実は今、**生成AI(ChatGPTやGeminiなど)を賢く使えば、専門知識がなくても誰でも簡単にVBAツールを作成できる時代です。今回は、私がココナラで提供している「AI×VBA開発」の凄さを体感していただくために、「バラバラのシートを1つにまとめる自動化コード」**を無料で公開します!
2. 生成AIへの「正しい指示の出し方(プロンプト)」
AIから動くコードを引き出すには、コツがあります。以下の指示(プロンプト)をコピーして、AIに貼り付けてみてください。
AIへの指示出し例:
Excel VBAで、ブック内の全ワークシート(「集計」シート以外)のデータを、1つの「集計」シートに縦に順番にコピーするマクロを作成してください。
・各シートの1行目は見出しなので、2行目以降をコピーすること。
・集計シートのA列には、元のシート名が入るようにしてください。
3. そのまま動く!全シート統合マクロ
AIが書き出したコードを、初心者の方でも使いやすいように整えたものがこちらです。
VBA
Sub CombineAllSheets()
Dim ws As Worksheet
Dim summaryWs As Worksheet
Dim lastRow As Long
Dim copyRow As Long
Dim nextRow As Long
' 1. 集計用シートを作成(既にある場合はそれを使う)
On Error Resume Next
Set summaryWs = Sheets("集計")
On Error GoTo 0
If summaryWs Is Nothing Then
Set summaryWs = Sheets.Add(Before:=Sheets(1))
summaryWs.Name = "集計"
End If
' 2. 集計シートを初期化(一度中身を消去)
summaryWs.Cells.Clear
summaryWs.Range("A1").Value = "元シート名"
nextRow = 2
' 3. 全シートをループしてデータをコピー
For Each ws In ThisWorkbook.Worksheets
If ws.Name <> "集集計" And ws.Name <> summaryWs.Name Then
' データが入っている最終行を取得
lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
If lastRow >= 2 Then
' 見出し以外のデータをコピー
ws.Rows("2:" & lastRow).Copy summaryWs.Rows(nextRow)
' A列にシート名を記載
copyRow = lastRow - 1
summaryWs.Range("A" & nextRow & ":A" & (nextRow + copyRow - 1)).Value = ws.Name
nextRow = nextRow + copyRow
End If
End If
Next ws
MsgBox "データの統合が完了しました!", vbInformation
End Sub
4. 使い方ステップ
Excelで Alt + F11 を押して、VBAエディタを開きます。
「挿入」メニューから「標準モジュール」を選択。
上記のコードを貼り付けます。
F5 キーを押すか、Excel画面に戻って「マクロ」から実行するだけ!
5. さいごに
AIを使えばコードは書けます。しかし、**「自分の業務に合わせた細かい微調整」や「エラーが出た時の原因究明」**には、やはり経験と知識が必要です。
「AIに作らせてみたけど、うまく動かない」
「もっと複雑な条件で自動化したい」
「VBAとGAS、どっちがいいか相談したい」
そんな時は、ぜひ私にご相談ください!建設業や事務職での実務経験を活かし、あなたの現場で本当に役立つツールを開発いたします。
\ お見積り・ご相談は無料です。お気軽にDMください! /