Dir関数を使わないで、複数ブックのデータを一つのシートにまとめる

Dir関数を使わないで、複数ブックのデータを一つのシートにまとめる

Excel塾のマクロ講座60回
マクロ講座

Excel塾のマクロ講座60回

Dir関数を使わないで、複数ブックのデータを一つのシートにまとめる

動画版「マクロ講座」です。
複数ブックのデータを一つのまとめブックのシートにまとめる。 今回は、59回と結果は同じですが、Dir関数を使わずに、特定フォルダのファイルを取得し、まとめシートにデータをまとめます。 使うメソッドは、GetOpenFilenameメソッドです。
Excel ファイル を複数取得します。

(サンプルファイルは、こちらから 60回サンプルデータ

Dir関数を使わずに、複数ブックのデータを1つにまとめる、マクロ動画 

動画で使用したコード

Sub セル範囲書き出したブックのデータをまとめる()
    Dim 支店bk As Workbook, 支店sh As Worksheet
    Dim rng As Range, mrow As Long, i As Long, srow As Long
    matome.Cells(1, 1).CurrentRegion.Offset(1, 0).Clear
    srow = sentaku.Cells(Rows.Count, 1).End(xlUp).Row
'    Application.ScreenUpdating = False
    For i = 1 To srow
        Set 支店bk = Workbooks.Open(Filename:=sentaku.Cells(i, 1).Value)
        Set 支店sh = 支店bk.Worksheets(1)
        支店sh.Rows(1).Delete
        Set rng = 支店sh.UsedRange
        mrow = matome.Cells(matome.Rows.Count, 1).End(xlUp).Row + 1
        rng.Copy Destination:=matome.Cells(mrow, 1)
        支店bk.Close SaveChanges:=False
    Next i
'    Application.ScreenUpdating = True
End Sub

セル範囲に取得したいファイル名を書き出すマクロ。このマクロでGetOpenFilenameメソッドを使用します。

Sub getfilenames()
    Dim filenames As Variant, fn As Variant, i As Long
    filenames = Application.GetOpenFilename( _
    FileFilter:="Excel ファイル , *.xlsx", MultiSelect:=True)
    If Not IsArray(filenames) Then
        Exit Sub
    End If
    i = 1
    For Each fn In filenames
        sentaku.Cells(i, 1).Value = fn
        i = i + 1
    Next fn
End Sub

GetOpenFilenameメソッド

ファイルの選択するためのGetOpenFilenameメソッドの書式と引数の説明
Application.GetOpenFilename(FileFilter, FilterIndex, Title, MultiSelect)
ファイルを開くダイアログをマクロの中で使いたい時に、利用するのが、GetOpenFilenameメソッドです。
親オブジェクトは、 Applicationオブジェクトになります。

パラメータ 省略可否 データ型 引数の内容
FileFilter Variant型 ファイルの候補(種類)を指定する文字列(ファイルフィルタ文字列)を指定します。省略すると種類は「"すべてのファイル (*.*),*.*"」になります。
FilterIndex Variant型 引数「FileFilter」で指定した「ファイルフィルタ文字列,ワイルドカードのペア」において、何番目のペアを既定値とするかを指定します。この引数を省略するか、「ファイルフィルタ文字列,ワイルドカードのペア」のペア数より大きな値を指定すると、1番目の「ファイルフィルタ文字列,ワイルドカードのペア」が規定値となります。
Title Variant型 [ファイルを開く]ダイアログボックスのタイトルを指定します。これを省略すると、デフォルト”ファイルを開く" になります。
ButtonText Variant型 Macintoshのみ指定できます。
MultiSelect Variant型 TrueかFalseを指定します。Trueを指定した場合、複数ファイルを選択できるようになります。