Excel Tips by pPoy


トップへ←Top    VBAへVBA  VBA基礎へVBA 基礎  一般へ一般  

Macro 指定フォルダ内のファイル名一覧を配列に格納する方法
《Dir関数》 (Excel97,Excel2000,Excel2002)
指定フォルダ内を検索後、配列にファイル名を順番に格納します。
検索するファイルの種類は、拡張子を指定して予め絞って置きます。
検索には Dir 関数を使用します。
以下のコードを標準モジュールに貼り付けてください。
Sub myFiles()
    '指定フォルダ内のファイル名一覧を配列に格納する方法
    '2005/04/29 pPoy
    Dim strFile() As String     '動的配列宣言
    Dim strPath As String       'フォルダのフルパス
    Dim strType As String       'ファイルタイプ
    Dim tmpName As String       'ファイル名
    Dim i As Long               'カウンタ
    
    strPath = "C:\Test\"
    strType = "*.xls"           'Excel形式を指定
    
    '1件取得
    tmpName = Dir(strPath & strType)
    i = 0
    
    If tmpName = "" Then
        MsgBox "ファイルが見つかりませんでした〜"
    End If
    
    'Loop 開始
    Do While tmpName <> ""
        '配列の上限再設定
        ReDim Preserve strFile(i)
        strFile(i) = tmpName
        i = i + 1
        MsgBox i & "件目, " & tmpName       '※
        
        ' 次のファイル名取得
        tmpName = Dir
    Loop
End Sub
≪注意≫
  • 「※」 の部分のメッセージは、検証用に表示してあります。
    不要な場合は削除、若しくはコメントアウトしてください。

  • このマクロは、Option Base 0 を前提としています。 (規定は 0 です)
    従って配列の添え字の下限は、0 から始まります。
    つまり最初に見つかったファイル名は、strFile(0) に格納されます。

  • このマクロは拡張子に、「xls」 を持つ Excel ファイルを、指定されたフォルダ内から検索し、
    ファイルが見つかった場合のみ配列に追加します。

  • ReDim にキーワード Preserve を使用して、既存の配列内の値を保持したまま、
    配列の最後の次元の要素数を変更しています。
    このキーワードを使用せずに配列の次元を変更した場合は、既存の値はクリアされます。

  • 検索条件の、ファイル名の一部と拡張子を変更することにより、各種ファイルに対応できます。

  • このマクロは Excel 用として書いてありますが、Access でもそのまま使用できます。


この頁のTOPへTop
【念の為の注意書きです。】
このページ(下位ページ含む)の全ての物の無断転載を禁止いたします。
又、当ページ(下位ページ含む)に記載されていることは、全て自己の責任において実行してください。

Copyright(C) pPoy 2005-2010