• ベストアンサー

csv内にサブフォルダー内のファイル名を抽出する方

csvのA列にアイテム番号が記載されております。 また、とあるフォルダーにアイテム番号になった名前のサブフォルダーが複数ございます。 しかし、フォルダ内の画像ファイル名が不規則となっているので、アイテム番号とサブフォルダ名が一致したらb列以降に抽出したいのですが、どのようにしたらよろしいでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • SI299792
  • ベストアンサー率47% (772/1616)
回答No.1

指定フォルダのファイル名を読み、フォルダなら、A列を検索。見つけたらB列に書き込むプログラムです。完全一致です。 csv ファイルをExcel で開いてから実行してください。 PathNameはとあるフォルダーに変更して下さい。 ' Option Explicit ' Sub Macro1() '   Const PathName As String = "C:\Users\MA\Desktop\My Documents"   Dim FileName As String   Dim Attr As Integer   Dim FRange As Range   Dim Row As Long '   Columns(2).ClearContents   FileName = Dir(PathName & "\*.*", vbDirectory) '   While FileName > ""     Attr = GetAttr(PathName & "\" & FileName) And vbDirectory '     If Attr > 0 Then       Set FRange = Columns(1).Find(FileName, LookAt:=xlWhole) '       If Not FRange Is Nothing Then         Row = Row + 1         Cells(Row, "B") = FileName       End If     End If     FileName = Dir   Wend End Sub 「フォルダ内の画像ファイル名が不規則」というのが意味不明でした。やりたいことはこうではないのかもしれません。違っていたら何をしたいのか詳しく書いて下さい。

saya100111
質問者

お礼

再度質問いたします。

saya100111
質問者

補足

補足です。 C:\Users\Owner\Downloads\通販素材\tsuhan_jp_5028_2018-02-26\setting_000002016 のフォルダに 現在3つのサブフォルダーがございます。 たとえば、 1006 2001 1223 というものがあったとして、そのファイルの中身の画像ファイル名が 000033340_0001.jpg、000033340_0002.jpg、000033340_0003.jpg のように不規則になっております。 ネットショップで商品を一括で登録する際に、csv上に画像ファイル名を記載する必要があるのでサブフォルダー名が一致したらファイル内のファイル名を抽出する方法についての質問でした。