0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Excel VBAでCSVファイルを一括処理!簡単プロンプトで自動化

Posted at

これなに

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にこのプロンプトを試してみてください!

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?