PR

Calendar

Profile

兎の道化師

兎の道化師

Keyword Search

▼キーワード検索

2022.02.06
XML

指定フォルダの下層階も含め
保存されたファイルを
一覧表で作成するVBA



Sub sample()
    Dim v As Variant
    'v = GetFileList("指定フォルダ")
    a = InputBox("フォルダ名をフルパス入力")
    v = GetFileList(a)
End Sub
Function GetFileList(ByVal argDir As String) As String()
  Dim i As Long
  Dim aryDir() As String
  Dim aryFile() As String
  Dim strName As String
  ReDim aryDir(i)
  aryDir(i) = argDir '引数のフォルダを配列の先頭に入れる
  'まずは、指定フォルダ以下の全サブフォルダを取得し、配列aryDirに入れます。
  i = 0
  Do
    strName = Dir(aryDir(i) & "\", vbDirectory)
    Do While strName <> ""
      If GetAttr(aryDir(i) & "\" & strName) And vbDirectory Then
        If strName <> "." And strName <> ".." Then
          ReDim Preserve aryDir(UBound(aryDir) + 1)
          aryDir(UBound(aryDir)) = aryDir(i) & "\" & strName
        End If
      End If
      strName = Dir()
    Loop
    i = i + 1
    If i > UBound(aryDir) Then Exit Do
  Loop
  '配列aryDirの全フォルダについて、ファイルを取得し、配列aryFileに入れます。
  ReDim aryFile(0)
  For i = 0 To UBound(aryDir)
    strName = Dir(aryDir(i) & "\", vbNormal + vbHidden + vbReadOnly + vbSystem)
    Do While strName <> ""
      If aryFile(0) <> "" Then
        ReDim Preserve aryFile(UBound(aryFile) + 1)
      End If
      aryFile(UBound(aryFile)) = aryDir(i) & "\" & strName
      '実行結果が分かりやすいように、テスト的にセルに書き出す場合
      Cells(UBound(aryFile) + 2, 1) = strName
      Cells(UBound(aryFile) + 2, 2) = aryFile(UBound(aryFile))
      strName = Dir()
    Loop
  Next
  GetFileList = aryFile
End Function





お気に入りの記事を「いいね!」で応援しよう

Last updated  2022.02.06 22:04:40
コメント(0) | コメントを書く
[💻パソコン・スマホとか] カテゴリの最新記事


【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! -- / --
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x
X

© Rakuten Group, Inc.
X
Mobilize your Site
スマートフォン版を閲覧 | PC版を閲覧
Share by: