ファイル名に基づいてシート名を変更する VBA

ファイル名に基づいてシート名を変更する VBA

「.Zip」形式の記録ファイルがたくさんあります。VBA でそれらすべてを開き、詳細をテキストとして減算します。ファイル数が多いため、ワークブックはシートを作成し、次のようにカウントを維持します。

ActiveSheet.Paste
Dim sheetsQuantity As Integer
sheetsQuantity = ThisWorkbook.Worksheets.Count
ActiveSheet.Name = "Sheet" & sheetsQuantity - 3

情報を取得するために開かれたファイル名になるように (「シート」と数量) を更新する必要があります。ファイルが多数あるため、各シートはファイルと一致する必要があります。したがって、ファイル #1 が「MatchCase.zip」という名前である場合、シート #1 は「MatchCase.zip」という名前にする必要があります。

何かアドバイスがあればお願いします。

答え1

これは、Windowsのバージョンとファイル構造によって異なります。ZIPデスクトップに次のようなファイルを作成しました。ホルダー.Zipフォルダ内には、フォーマット.xlsm

ファイルを開いてワークブック内のいくつかのシートを選択し、以下をPath使用してワークブックを調べました。

Sub WhoHoldsMe()
    Dim sPath As String

    sPath = ActiveSheet.Parent.Path
    arr1 = Split(sPath, "\")
    arr2 = Split(arr1(UBound(arr1)), "_")

    MsgBox sPath & vbCrLf & arr2(1)

End Sub

次のような結果になります:

ここに画像の説明を入力してください

明らかにActiveSheetには親があります(シートが入っているワークブック)そのワークブックにはファイル名を含むパスがありますZIP


残念ながら、Pathにはホルダー.zip私のデスクトップにあります。

関連情報