指定したフォルダ内にある全てのエクセルファイルを開いて値を持ってくる。意外にこれに近い動作を要望されることは多い。
ただこの方法、ファイルが上手く開けなかったりとか気をつけなければいけないことが多いので、なるべく採用しないようにしている。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
Sub FileList() Dim fs As Object Set fs = CreateObject("Scripting.FileSystemObject") p = "C:\test" c = 1 For Each f In fs.GetFolder(p).Files Call MainProc(f.Path, c) c = c + 1 Next End Sub Function MainProc(p, c) Workbooks.Open (p) Set w = ActiveWorkbook ThisWorkbook.Sheets("Sheet1").Cells(1, c).Value = w.Sheets("Sheet1").Cells(1, 1).Value w.Close End Function |