フォルダのリネーム

Sub prcRenameFolders()
    Dim lngRowStart As Long      ' 処理開始行
    Dim lngRowEnd As Long        ' 処理終了行
    Dim lngRow As Long           ' 現在処理中の行
    Dim strParentPath As String  ' 親フォルダのパス
    Dim strCurrentName As String ' 現在のフォルダ名
    Dim strNewName As String     ' 新しいフォルダ名
    Dim fso As FileSystemObject  ' ファイルシステムを操作するオブジェクト
    Dim fld As Folder            ' 操作対象のフォルダオブジェクト
    Dim strFullPath As String    ' 現在のフルパス
    Dim wst As Worksheet         ' 操作対象のワークシート

    ' FileSystemObjectのインスタンスを生成
    Set fso = New FileSystemObject
    ' 操作対象のシートをセット
    Set wst = ThisWorkbook.Sheets("Sheet1")

    ' wstを利用して処理を行う
    With wst
        ' 処理開始行と最終行を設定
        lngRowStart = 2
        lngRowEnd = .Cells(.Rows.Count, "B").End(xlUp).Row

        ' 指定した行範囲でループ処理
        For lngRow = lngRowStart To lngRowEnd
            strParentPath = .Cells(lngRow, "B").Value
            strCurrentName = .Cells(lngRow, "C").Value  ' C列の値
            strNewName = .Cells(lngRow, "D").Value      ' D列の値

            ' 現在のフルパスを生成
            strFullPath = fso.BuildPath(strParentPath, strCurrentName)
            ' フォルダが存在するかチェック
            If fso.FolderExists(strFullPath) Then
                ' 新しいフルパスを生成
                Set fld = fso.GetFolder(strFullPath)
                ' フォルダ名を変更
                fld.Name = strNewName
            Else
                Debug.Print "フォルダが存在しません: " & strFullPath
            End If
        Next lngRow
    End With

    ' オブジェクトの解放
    Set fld = Nothing
    Set fso = Nothing
    Set wst = Nothing
End Sub

コメント