メニュー 表示 非表示

所定のフォルダ配下にあるExcelを開く@Excel マクロ・VBA

複数のExcelファイルから値を取り出して、集計したい時は多々ありますね。
その際に、知っておきたいことです。
利用シーンは多いと思います。

所定のフォルダ配下にある、Excelファイルを全て開きます。
Dir関数を利用して、フォルダ配下のファイル名(xls形式)を取得します。
前方一致ですので、xlsx形式も取得する形になります。
ファイル名をコレクションに格納します。

For Eachでコレクションをループし、
ファイル名を取得し、Excelファイルを開きます。




Dim fileNmCol As Collection 'ファイル名格納コレクション
Dim folderPath As String 'フォルダのフルパス

'作業用
Dim tempFileNm As Variant
Dim fullPath As String

Set fileNmCol = New Collection

'フォルダパス
folderPath = "C:\test\"

'Dirにより、ファイル名を取得(xlsファイルのみ)
'フォルダ配下にあるファイル名を順次fileNmに格納する。
tempFileNm = Dir(folderPath + "*.xls", vbNormal)

'ファイル名をfileNmColに追加する
Do While tempFileNm <> ""
    fileNmCol.Add (tempFileNm)
    tempFileNm = Dir()
Loop

'ファイルの数だけ繰り返し
For Each tempFileNm In fileNmCol

    'ファイルのフルパスを設定指定して、Excelブックを開く
    fullPath = folderPath + tempFileNm
    Workbooks.Open fullPath

    'ファイルを閉じる(アラートを無効にする)
    Application.DisplayAlerts = False
    Workbooks(tempFileNm).Close
    Application.DisplayAlerts = True
Next




Copyright (C) Excelマクロ・VBAのお勉強. All Rights Reserved.