多数のCSVファイルをまとめて1シートごとに読み込む
動画でExcel マクロ講座57回CSV
多数のCSVファイルをまとめて1シートごとに読み込む
動画版「マクロ講座」です。
今回は複数のあるいは多数の CSV ファイルをまとめて1シートごとに読み込むというマクロを作成します。
CSV ファイルの場合1枚でしたら、エクセルから直接読み込んだり、ダブルクリックでExcel で開くこともできますので、それほどマクロの必要性を感じることはありませんまる。ただ量が多いと話は別です。
マクロ動画 多数の CSV ファイルをまとめて1シートごとに読み込む
動画で紹介したコード
Sub 複数CSV呼出() Dim Mycsv As Variant, Newbook As Workbook, Opencsv As Workbook Dim CountSh As Long, データ型(10) As Variant, i As Long Mycsv = Application.GetOpenFilename( _ FileFilter:="CSVファイル,*.csv;*.txt", MultiSelect:=True) If IsArray(Mycsv) Then For i = 1 To 10 データ型(i) = Array(i, 1) Next i Set Newbook = Workbooks.Add CountSh = Newbook.Worksheets.Count For i = 1 To UBound(Mycsv) Workbooks.OpenText Filename:=Mycsv(i), Origin:=65001, StartRow:=1, _ DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _ ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=False, _ Comma:=True, Space:=False, Other:=False, _ FieldInfo:=データ型(i), TrailingMinusNumbers:=True Set Opencsv = ActiveWorkbook ActiveSheet.Copy After:=Newbook.Worksheets(CountSh) ActiveCell.CurrentRegion.Columns.AutoFit Opencsv.Close False Next i End If 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を指定した場合、複数ファイルを選択できるようになります。 |