Chat GPTを使って、複数のExcel シート を1つにまとめてみました
こんちには!オッサンLABO(@ossan_labo)のオッサンです
一般事務から経理管理まで、誰もが使ったことのあるExcel、
仕事をしていると、膨大なExcelファイルが作成されますよね
そんな複数あるExcelを1つにまとめれたら便利と思いません?
ということで今回の記事テーマは・・・
というお話しです
Visual Basic for Applications
複数のExcelから特定のシート を1つに まとめる方法ですが、
Visual Basic for Applications(VBA)という機能を使います
VBAは簡単なプログラムで、Excelの処理を自動化できる機能です
プログラミングなんて出来ませんよ。
という人も多いと思いますが、プログラミングなんて、
今はChat GPTを使えば、簡単にVBAの生成が出来るんです
Chat GPTを使えばVBAプログラミング不要
Chat GPTをウマく使うために、以前の記事でも説明したけど、
何をしたいのか“具体的な指示”をする必要があります
今回は複数のExcelから、特定のシートを1つにまとめるのが目的
でもChat GPTをウマく使うためには・・・
- 前提条件を決める
- 具体的で明確な指示
- 正解が出るまで指示
シッカリ伝える必要があります
Chat GPTで複数のExcelから特定のシートを1つにする
ということで早速、以下のような指示をChat GPTにしてみます
【前提条件】
次の条件を満たずVBAプログラムを作成してください。
【具体的な指示】
- 実行するとExplorerが起動し複数のExcelファイルが選択できる。
- 選択したExcelファイルから「Sheet1」というシートを選択する。
- 選択したシートから、セル「A1からE100」までのセルを選択する。
- 選択されたセルの中で、情報の入力があるものだけをコピーする。
- ディスクトップに「結合ファイル」というExcelファイルを作成する。
- 結合ファイルの「sheet1」に、コピーしたセル情報を貼り付ける。
- 貼り付けたセルのE列に、コピー元のExcelファイル名を入力する。
- 作業が完了したら「作業が完了しました」というダイアログを表示する。
シート名やコピーする範囲まで、かなり細かく指示していますよね?
これをChat GPTに入力すると・・・
以下のような複雑なVBAが、一瞬で生成されました!
Sub 結合ファイルを作成() Dim selectedFiles As FileDialog Dim selectedFile As Variant Dim combinedWorkbook As Workbook Dim wsCombined As Worksheet Dim wsSource As Worksheet Dim lastRow As Long Dim sourceFileName As String ' ファイルを選択 Set selectedFiles = Application.FileDialog(msoFileDialogOpen) selectedFiles.AllowMultiSelect = True selectedFiles.Title = "Excelファイルを選択してください" If selectedFiles.Show = -1 Then ' 結合用の新しいワークブックを作成 Set combinedWorkbook = Workbooks.Add Set wsCombined = combinedWorkbook.Sheets(1) wsCombined.Name = "Sheet1" ' 選択したExcelファイルからデータをコピー For Each selectedFile In selectedFiles.SelectedItems Set SourceWorkbook = Workbooks.Open(selectedFile) Set wsSource = SourceWorkbook.Sheets("Sheet1") sourceFileName = SourceWorkbook.Name lastRow = wsSource.Cells(wsSource.Rows.Count, "E").End(xlUp).Row ' データのコピー wsSource.Range("A1:E100").Copy wsCombined.Cells(wsCombined.Cells(Rows.Count, "A").End(xlUp).Row + 1, 1) wsCombined.Cells(wsCombined.Cells(Rows.Count, "E").End(xlUp).Row + 1, 5).Value = sourceFileName ' ワークブックを閉じる SourceWorkbook.Close SaveChanges:=False Next selectedFile ' 結合ファイルを保存 combinedFileName = Environ("USERPROFILE") & "\Desktop\結合ファイル.xlsx" combinedWorkbook.SaveAs combinedFileName combinedWorkbook.Close SaveChanges:=False ' 作業完了メッセージを表示 MsgBox "作業が完了しました。結合ファイルはデスクトップに保存されました。" Else MsgBox "ファイルが選択されませんでした。" End If End Sub
あとはChat GPTで生成されたVBAを実装するだけ
Chat GPTで生成されたVBAを実装する
まず新しいExcelを立ち上げて、Alt+F11を同時に押すと、
Visual Basic for Applications(赤枠)が起動します
次にメニューバーから、挿入 → 標準モジュールの順でクリックします
プログラムを入力できる画面が表示されるので、
Chat GPTで生成したプログラムを貼り付けます
画面上部のメニューから“ユーザーフォームの実行”をクリック
正しく動作すれば、複数のExcelから特定のシートを1つにした、
Excelファイルがディスクトップに生成されます
エラー(デバック)発生した場合
“実行”した後に、エラー(デバック)が発生した場合、
もう一度Chat GPTの続きに、エラーを報告します
この時も具体的に報告する必要があって・・・
- マーカーが付いている部分
- エラーメッセージの内容
などを入力すると、より正確なVBAを生成してくれます
Chat GPT+VBAで作業効率が上げる
Excelは普段から使うアプリケーションですが、
VBAという複雑な作業を自動化できる便利な機能があります
VBAはプログラミングが必要だから、使ってる人も少なかったけど、
Chat GPTを使えばVBAも、簡単に使いこなすことが出来ます
よくExcelを使う人は、Chat GPT+VBAで作業効率上げてみませんか?
このオッサンLABOブログでは、既存のプラットフォームを利用した・・・
役立つオッサンの仕事術や、古いパソコンの使い道を紹介しています
今後ともオッサンLABOをよろしくお願いいたします