VBA ファイル名・ファイル一覧を取得する方法 - Excel ホームページ制作 | 墨田区

VBA ファイル名・ファイル一覧を取得する方法 – Excel

LINEで送る
Pocket

VBAでファイル名やファイル一覧を取得する方法 をご紹介します。
ファイル操作はプログラムの基本ともいえますね。
ここでは VBAでファイル名・パスを取得する方法と共に、指定されたフォルダー内のファイル一覧を取得する方法 をご紹介します。




【PR】マジか?!「アレ」してるLINEスタンプっていったい・・・


ファイル名・パスを取得する方法

VBAが記述されたファイルのパスや名前を取得する場合は、以下の通りとなります。

ファイル名取得ThisWorkbook.Name
パス取得ThisWorkbook.Path
フルパス取得ThisWorkbook.FullName

サンプルソース

標準モジュールを作って以下のように記述します。
※サンプルは「C:\VBA ファイル名取得方法\サンプル\」に作成し、ファイル名は「サンプル.xlsm」としています。

Sub Macro1()
    ' ファイル名取得
    Debug.Print ThisWorkbook.Name
    ' パス取得
    Debug.Print ThisWorkbook.Path
    ' フルパス取得
    Debug.Print ThisWorkbook.FullName
End Sub

Debug.Print を使って、イミディエイトに出力します。

実行ボタンを押下するか、「F5」キーを押下します。
VBA実行ボタン

結果はこんな感じです。

サンプル.xlsm
C:\VBA ファイル名取得方法\サンプル
C:\VBA ファイル名取得方法\サンプル\サンプル.xlsm

指定されたフォルダー内のファイルの一覧を取得する方法

今度は、指定されたフォルダー内のファイル一覧を取得する方法です。
フォルダー内に以下のようなファイルがあったとします。
VBAファイル一覧取得
この中から、拡張子「.xlsx」だけをリスト化してみます。


サンプルソース

標準モジュールに以下のように記述します。

Sub Macro2()
    Dim Buf As String
    Dim Path As String
    ' パスを取得
    Path = ThisWorkbook.Path
    ' .xlsxファイル取得
    Buf = Dir(Path & "\*.xlsx")
    Debug.Print "### " & Path & " 内の.xlsx一覧 ###"
    
    Do While Buf <> ""
        ' ファイル名と更新日時を取得
        Debug.Print Buf & " : " & FileDateTime(Path & "\" & Buf)
        Buf = Dir()
    Loop
End Sub

まず Dir関数 を使って、ファイルがあるかどうかを取得します。

Buf = Dir(Path & "\*.xlsx")

ファイルがあった場合 Loop してファイル名と更新日時を取得します。
FileDateTime関数を利用すると更新日時が取得できます。

Debug.Print Buf & " : " & FileDateTime(Path & "\" & Buf)

再び Dir関数 を使って、ファイル名を取得します。

Buf = Dir()

それでは実行してみましょう。
※実行ボタンを押下するか、「F5」キーを押下します。
結果はこんな感じです。

### C:\VBA ファイル名取得方法\サンプル 内の.xlsx一覧 ###
Book1.xlsx : 2014/11/27 10:00:36
Book2.xlsx : 2014/11/27 10:13:03
Book3.xlsx : 2014/11/27 10:17:29

ファイル操作やファイルの一覧を作るというのは、実務ではよくありますので、覚えておきましょう。

おつかれさまでした。

LINEで送る
Pocket

この記事がお役に立ちましたら シェア をお願いいたします。

コメントを残す

コメント(必須)

お名前 (必須)
メールアドレス
(アドレスは公開されません)

Trackback URL