Dir フォルダ内のファイルを取得するExcel関数

Dir関数とは、指定したフォルダ内のファイルを検索する関数です。
拡張子を指定してのファイル検索や、フォルダ検索などが可能です。
フォルダ内のすべてのファイルを検索するには、戻り値が「"" 長さ0の文字列」になるまで、Dir関数を繰り返します。

構文: Dir(検索するファイルやフォルダ名 , 取得したいファイルの属性)
検索するファイルやフォルダ名 - (必須) 取得するフォルダやファイル名、拡張子などを指定します。ワイルドカードが使用ができます。例えばCドライブのExcelファイルを検索するには、「C:\*.xlsx」と指定します。
取得したいファイルの属性 - (省略可)ファイルの属性を下記の定数か数値で指定します。複数の属性の場合、各値を合計し指定します。
定数 数値 属性
vbNormal 0 標準ファイル
vbHidden 2 隠しファイル
vbSystem 4 システムファイル
vbVolume 8 ボリュームラベル
vbDirectory 16 ディレクトリ(フォルダ)


Homeに戻る > Excel 関数のTipsへ

Excel実行画面

「ファイル一覧の作成」コマンドボタンをクリックするとイベントが開始します。
「ファイル一覧の作成」コマンドボタン

フォルダ選択ダイアログボックスが開くので検索したいフォルダを選択します。
フォルダ選択ダイアログボックス

検索したいフォルダを選択すると、フォルダ内のファイル一覧がB7セルから下に表示されます。
Dir関数の使用結果

Excel VBAコード

'フォルダ選択ダイアログExcel標準モジュールコード (初期フォルダを指定する方法)
Public Function SelectFolder_FileDialog(iniDir As String) As String
    Dim s1 As String
    
    'フォルダ選択ダイアログ
    With Application.FileDialog(msoFileDialogFolderPicker)
        'タイトル
        .Title = "フォルダを選択してください"
        '初期フォルダ
        .InitialFileName = iniDir
        If .Show = -1 Then
            '選択された
            s1 = Application.FileDialog(msoFileDialogFolderPicker).SelectedItems(1)
            If Right$(s1, 1) <> "\" Then s1 = s1 + "\"
            SelectFolder_FileDialog = s1
        Else
            SelectFolder_FileDialog = ""
        End If
    End With
End Function

Private Sub MyGetDir(sdir As String)
    Dim sfina As String
    Dim lrow As Long
    
    lrow = 7
    sfina = Dir(sdir, vbNormal)
    Do While sfina <> ""
        Cells(lrow, 2) = sfina
        lrow = lrow + 1
        sfina = Dir
    Loop
End Sub

Private Sub CommandButton1_Click()
    Dim sdir As String
    
    sdir = SelectFolder_FileDialog("c:\")
    If sdir <> "" Then
        MyGetDir sdir
    End If
End Sub

[関連リンク]
フォルダー選択ダイアログ
フォルダ内のファイルリストを作成
サブフォルダも含めたフォルダ内のファイルリストを作成する

Homeに戻る > Excel 関数のTipsへ

■■■
このサイトの内容を利用して発生した、いかなる問題にも一切責任は負いませんのでご了承下さい
■■■
当ホームページに掲載されているあらゆる内容の無許可転載・転用を禁止します


Copyright (c) Excel-Excel ! All rights reserved