VBA開発

ファイルまたはフォルダを抽出する(Dir関数)【VBA入門】

Dir関数は指定したファイルまたはフォルダの名前を返します。

関数説明

Dir関数の構文は以下のように記載します。

 
Dir[(pathname[,attributes])]
 

引数の一覧は以下です。

引数定数(値)説明備考
pathname取得したいフォルダ名やファイル名を入力ワイルドカードを使用可能
attributesvbNormal0標準ファイル
vbHidden2隠しファイル
vbSystem4システムファイル
vbVolume8ボリュームラベルこちら選択すると、他は無効
vbDirectory16フォルダ

注意点

該当するデータがなければ0の文字列が返る
再起処理は出来ない
2回目以降はDir()と引数を渡さなければ、次の結果を返してくれる

どういった時に使う?

Dir関数をよく使うのはWindows上のファイル名を、抜き出す際でしょう。

詳しくは下記の記事を参照してください。
フォルダからファイルを一覧で抜き出す【エクセルマクロ】

使い方サンプル

Sub sample()
     
    Dim Path As String
    Dim FName As String
    Dim i As Long
     
    '■ファイル名取得するフォルダパス、該当拡張子を入れる
    Path = "C:\Sample\"
    FName = Dir(Path & "*.xlsx", vbNormal) 'ワイルドカード(*)を使用し、xlsx拡張子のファイルを全て
    
    '■■メモ
    'Dir(Path &"*.xlsx") でファイル名と一致した最初のファイル名を返します
    i = 1
     
    '■Loopでファイル一覧を取得する
    Do While FName <> ""
       Cells(i, 1) = FName
       i = i + 1
       FName = Dir()
    Loop
    
    '■■メモ
    '2回目移行の呼出は、Dir()。
    '全てのデータを抜き出した後は""(長さ0の文字列)で戻ってくる。
End Sub

その他応用する場合は以下。


'■フォルダを抜き出すなら、拡張子は付けない
Dir(Path & "*", vbDirectory)

'■「チェックシート」から始まるファイルを抜き出すなら、ワイルドカードをうまく利用する
Dir (Path & "チェックシート*")

コメント

タイトルとURLをコピーしました