これなに
chatGPTのプロンプト例です。
Excel VBAの生成においてエラーが発生することなく、ものすごく簡単に完結できました!
Excel VBAを使って、フォルダ内のCSVファイルを一括処理する方法をご紹介します。今回作成したVBAコードは、複数のCSVファイルを開き、その内容を新しいシートにコピーして、自動的に指定したプロシージャを実行するものです。
こんな感じで依頼してみた!
今回はChatGPTに以下のプロンプトを入力してみました。
プロンプト:
Excel VBA のコードを生成してください。
# 生成ルール
* 標準モジュールに貼り付けて使用できる
* コメントを入れる
# 機能
* ファイル直下「csv」フォルダ内のcsvファイルをひとつずつ開き、以下の処理を行う
1. 開いたcsvシートをコピーし新しいシートとして貼り付ける
2. 貼り付けた新しいシートをアクティブにする
3. MainProcessプロシージャを実行する
これだけで、以下のVBAコードが生成されました。
生成されたVBAコード:
Sub ProcessCSVFiles()
' CSVフォルダ内のすべてのCSVファイルを処理する
Dim folderPath As String
Dim fileName As String
Dim ws As Worksheet
Dim wbCSV As Workbook
Dim wsNew As Worksheet
' フォルダのパスを設定
folderPath = ThisWorkbook.Path & "\csv\"
' 最初のCSVファイルを取得
fileName = Dir(folderPath & "*.csv")
' フォルダ内のCSVファイルをすべて処理するループ
Do While fileName <> ""
' CSVファイルを開く
Set wbCSV = Workbooks.Open(folderPath & fileName)
' CSVシートをコピーして新しいシートに貼り付ける
Set ws = wbCSV.Sheets(1)
ws.Copy After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
' 新しいシートをアクティブにする
Set wsNew = ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
wsNew.Activate
' MainProcessプロシージャを実行
Call MainProcess
' CSVファイルを閉じる(保存せずに)
wbCSV.Close SaveChanges:=False
' 次のCSVファイルを取得
fileName = Dir
Loop
End Sub
まとめ
このプロンプトを使用するだけで、複数のCSVファイルを自動で処理するVBAコードが完成しました。今回のような作業を手作業で行うと大変ですが、VBAとChatGPTを組み合わせることで、簡単に自動化できました。
もし同じようなVBAコードを必要としている方がいれば、ぜひChatGPTにこのプロンプトを試してみてください!