Chat GPT × Excel VBA

 

今回も「Chat GPT」を使って、どんな感じで「Excel VBA」プログラムが作成できるか試していきたいと思います。

 

 

 ファイル操作 6(ファイル名やフォルダ名の一括変更)

今回は、ファイルやフォルダの名前を変更するプログラムを作成していき

 

 

  ファイル名を一括変更

 

①下のフォルダにあるファイル、「在庫表_1月」から「在庫表_6月」の6ファイルの名前を変更するプログラムを作成します。

 

 

②内容としては、

・セルB1にファイルのあるパスを記入

・A列の4行目以降に「変更前ファイル名」を記載

・B列の4行目以降に「変更ごファイル名」を記載

 

 

③この内容でいつものごとくChatGPTにVBA作成依頼をしました。

「セルB1に記入されたパスにあるA列の4行目以降に記載されているファイルをB列の4行目以降に書かれているファイル名に変更するVBAを作成してください。」

 

④実行結果

下のように全て「2023年」の文字が追加されたファイル名に変更されました。

 

 

【実際のプログラム】

Sub RenameFiles1()
    Dim path As String
    Dim filename As String
    Dim i As Long
    
    path = Range("B1").Value

👆パスの設定
    
    For i = 4 To cells(Rows.Count, 1).End(xlUp).Row

👆「i」の値を4からA列の最終行まで繰り返し


        filename = cells(i, 1).Value

👆「filename」変数にセル「i」行目1列(A列)の値を入れる


        Name path & "\" & filename As path & "\" & cells(i, 2).Value

👆ファイルの名前を「filename」から、セル「i」行目2列(B列)の値に変更する


    Next i
End Sub

 

 

同じ文字をファイル名に追加する場合

上でも同じ文字をファイル名に追加しましたが、「変更後のファイル名」を全て書くのが面倒なので、下のように1か所に書かれた文字を全てのファイル名に追加するように変更。

 

①ChatGPTに下のように依頼。

「セルB1に記入されたパスにあるA列の4行目以降に記載されているファイル名を、絶対セルB4に書かれている値を追加したファイル名に変更するVBAを作成してください。」

※ここで、「絶対セルB4」と記載しましたが、時々「相対セル」になることがあるので、念のため「セルB4は固定してください」等追加した方が良いようです。


 

②実行結果

下のように、この内容でもすべてのファイル名に「2024年」の文字を追加することができました。

 

 

【実際のプログラム】
Sub RenameFiles2()
    Dim path As String
    Dim filename As String
    Dim newfilename As String
    Dim i As Long
    
    path = Range("B1").Value
    
    For i = 4 To cells(Rows.Count, 1).End(xlUp).Row
        filename = cells(i, 1).Value
        newfilename = path & "\" & cells(4, 2).Value & filename

👆新たに「newFilename」変数を追加して、セル4行目2列(B列)の値+「filename」(元の名前)に追加


        Name path & "\" & filename As newfilename

👆ファイルの名前を「filename」から「newfilename」に変更


    Next i
End Sub

 

 

  フォルダ名を一括変更

 

フォルダ名についても一括で変更するプログラムを作成しました。

フォルダ名の変更については、B4セルの値を固定してフォルダ名に追加する方法(上のファイル名変更2つ目の方法)で作成しました。

 

現状のフォルダは下のように「在庫表_2023年」から「在庫表_2025年」の3つのフォルダがあります。

 

 

①ChatGPTにVBA作成依頼。

「同様にB1に書かれたパスにあるA列の4行名以降に書かれたフォルダ名を絶対セルB4の値を追加したフォルダ名に変更するVBAを作成してください。」

 

 

②実行結果

こちらも下のように問題なく全てのフォルダに「文房具_」がフォルダ名に追加されました。

 

 

【実際のプログラム】

Sub RenameFolders()
    Dim path As String
    Dim foldername As String
    Dim newfoldername As String
    Dim i As Long
    
    path = Range("B1").Value
    
    For i = 4 To cells(Rows.Count, 1).End(xlUp).Row
        foldername = cells(i, 1).Value
        newfoldername = path & "\" & cells(4, 2).Value & foldername
        Name path & "\" & foldername As newfoldername

👆基本的な考え方は「ファイル名の変更」と同じです。


    Next i
End Sub

 

※ファイル名、フォルダ名を変更する基本的な構文は下です。

「OldName」「NewName」ともにパスも必要です。

 

Name OldName As NewName

 

あとがき

今回はChatGPTで、ファイル名やフォルダ名を変更するプログラムを作成しました。

 

 

 

次回は、ファイル操作 7として

・ファイルやフォルダのコピー、移動

のプログラムを作成したいと思います。