Excel VBA ファイルの一覧を取得する。

  • デル株式会社
  •  

    VBAでは、ファイルの一覧を取得する方法が、
    Dir関数の組み合わせ等有るけども、
    今回は、
    FileSystemObjectの方が、なんか好きなわけで、サンプルは
    FileSystemObject

    基本的には、GetFolderメソッドを使用して、
    ファイルの一覧を取得するだけ。
    MSDNも併せて参照してちょ。

    GetFolderメソッド

    サンプル

    Dim objFso As Object     'ファイルシステムオブジェクト用 
    Dim objFolder As Object  'フォルダオブジェクト用 
    Dim vFileList As Variant 'コレクション用(ループ用) 
    
    'ファイルシステムオブジェクト生成 
    Set objFso = CreateObject("Scripting.FileSystemObject")
    
    'ファイル一覧取得 
    Set objFolder = objFso.GetFolder(sBookPath).Files
    
    ‘下記の様な書き方もOK。読みやすいのが一番なんで、サンプルは分解 
    'CreateObject("Scripting.FileSystemObject").GetFolder( sBookPath ).SubFolders
    
    '一覧を表示ループ 
    For Each vFileList In objFolder 
    
        'デバッグウインドウに出力 
        Debug.Print vFileList.Name 
    Next 
    
    Set objFso = Nothing
    Set objFolder = Nothing
    

    ちなみに、
    GetExtensionName を使用して、
    特定の拡張子のファイルのみを取得する事も可能でごじゃる。
    一覧のループ部分を下記に変更。

    '一覧を表示ループ
    For Each vFileList In objFolder
            
        If objFso.GetExtensionName(vFileList.Name) = "xls" Then
          
            Debug.Print vFileList.Name
        End If
               
    Next
    

    簡単でしょ。

    関連記事

    ページ上部へ戻る