分かりやすく、使いやすく。

フォルダ内のファイルとフォルダの一覧を取得する方法

スポンサーリンク

Excel VBA でフォルダ内のファイルオブジェクトの一覧を取得するには、 Folder オブジェクトの Files プロパティを使用します。フォルダ内のフォルダオブジェクトの一覧を取得するには Folder オブジェクトの SubFolders プロパティを使用します。

  1. フォルダ内の全てのファイル名(フォルダ除く)をシートに出力する
  2. フォルダ内の全てのファイル名(フォルダ含む)をシートに出力する


フォルダ内の全てのファイル名(フォルダ除く)をシートに出力する

次のサンプルコードでは、 c:\temp 内の全てのファイル(フォルダを除く)の名前を「Sheet1」という名前のシートに出力します。

VBA(実行可能なサンプルコード)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Option Explicit
 
Sub test()
    Dim objFileSys
    Dim objFolder
    Dim objFile
    Dim rowCounter
    
    'ファイルシステムを扱うオブジェクトを作成
    Set objFileSys = CreateObject("Scripting.FileSystemObject")
    
    'c:\temp フォルダのオブジェクトを取得
    Set objFolder = objFileSys.GetFolder("c:\temp")
    
    '出力行カウンタを初期化
    rowCounter = 1
    
    'FolderオブジェクトのFilesプロパティからFileオブジェクトを取得
    For Each objFile In objFolder.Files
        '取得したファイルのファイル名を「Sheet1」シートに出力
        ThisWorkbook.Worksheets("Sheet1").Cells(rowCounter, 1) = objFile.Name
        
        '行カウンタを次の行に進める
        rowCounter = rowCounter + 1
    Next
    
    Set objFile = Nothing
    Set objFolder = Nothing
    Set objFileSys = Nothing
End Sub 

フォルダ内の全てのファイル名(フォルダ含む)をシートに出力する

次のサンプルコードでは、 c:\temp 内の全てのファイル(フォルダを含む)の名前を「Sheet1」という名前のシートに出力します。

VBA(実行可能なサンプルコード)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
Option Explicit
 
Sub test()
    Dim objFileSys
    Dim objFolder
    Dim objSubFolder
    Dim objFile
    Dim rowCounter
    
    'ファイルシステムを扱うオブジェクトを作成
    Set objFileSys = CreateObject("Scripting.FileSystemObject")
    
    'c:\temp フォルダのオブジェクトを取得
    Set objFolder = objFileSys.GetFolder("c:\temp")
    
    '出力行カウンタを初期化
    rowCounter = 1
    
    'FolderオブジェクトのFilesプロパティからFileオブジェクトを取得
    For Each objFile In objFolder.Files
        '取得したファイルのファイル名を「Sheet1」シートに出力
        ThisWorkbook.Worksheets("Sheet1").Cells(rowCounter, 1) = objFile.Name
        
        '行カウンタを次の行に進める
        rowCounter = rowCounter + 1
    Next
    
    'FolderオブジェクトのSubFoldersプロパティからFolderオブジェクトを取得
    For Each objSubFolder In objFolder.SubFolders
        '取得したファイルのファイル名を「Sheet1」シートに出力
        ThisWorkbook.Worksheets("Sheet1").Cells(rowCounter, 1) = objSubFolder.Name
        
        '行カウンタを次の行に進める
        rowCounter = rowCounter + 1
    Next
    
    Set objSubFolder = Nothing
    Set objFile = Nothing
    Set objFolder = Nothing
    Set objFileSys = Nothing
End Sub 
スポンサーリンク
スポンサーリンク