- ベストアンサー
EXCEL 複数のファイルから指定したセルの値を自動で抽出したい。
EXCEL2003を使用しています。 同じ様式のフォーマットに入力されたデータファイルがフォルダにいくつもあります。 それらのファイルの中から指定したセルの値を自動で抜き出し、 あたらしいシートに入力したいのですが、可能でしょうか? フォルダ内のファイル数は相当あり、ファイル名を一つ一つ指定するような方法は無理なので、 フォルダ内のファイル全てから自動で抜き出すような方法になると思いますが、どのような方法があるでしょうか。 複雑であれば参考になるリンク等教えていただきたいです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
Sub あつめる() Sheets.Add Set 新シト = ActiveSheet 書行 = 1 Set オブ = CreateObject("Shell.Application") Set パス = オブ.BrowseForFolder(&O0, "フォルダを選んでください", &H1 + &H10, "C:\") If パス Is Nothing Then Exit Sub フォルダ = パス.Items.Item.Path Set オブ = Nothing: Set パス = Nothing Set オブ = CreateObject("Scripting.FileSystemObject") For Each ブク In オブ.GetFolder(フォルダ).Files If LCase(オブ.GetExtensionName(ブク)) = "xls" Then Workbooks.Open ブク 新シト.Range("A" & 書行).Value = ActiveWorkbook.Name 新シト.Range("B" & 書行).Value = Sheets(1).Range("A1").Value 新シト.Range("B" & 書行).Interior.ColorIndex = 35 新シト.Range("C" & 書行).Value = Sheets(1).Range("B2").Value 新シト.Range("C" & 書行).Interior.ColorIndex = 35 新シト.Range("D" & 書行).Value = Sheets(1).Range("C3").Value 新シト.Range("D" & 書行).Interior.ColorIndex = 35 新シト.Range("E" & 書行).Value = Sheets(2).Range("A1").Value 新シト.Range("E" & 書行).Interior.ColorIndex = 36 新シト.Range("F" & 書行).Value = Sheets(2).Range("B2").Value 新シト.Range("F" & 書行).Interior.ColorIndex = 36 新シト.Range("G" & 書行).Value = Sheets(2).Range("C3").Value 新シト.Range("G" & 書行).Interior.ColorIndex = 36 新シト.Range("H" & 書行).Value = Sheets(2).Range("D4").Value 新シト.Range("H" & 書行).Interior.ColorIndex = 36 書行 = 書行 + 1 ActiveWorkbook.Saved = True ActiveWorkbook.Close End If Next Set オブ = Nothing Set 新シト = Nothing MsgBox "完了" End Sub 新シト.Range("H" & 書行).Value = Sheets(2).Range("D4").Value 新シト.Range("H" & 書行).Value は書く方 結果の表示です Sheets(2).Range("D4").Value は 何を書くか です いくつも書くときは "H" & 書行 を I,J,Kのようにずらして下さい Sheets(2).Range("D4").Value 「左から2番目のシート」 の 「D4セル」 の 「文字」 という意味です Sheets("Sheet1").Range("D4").Value シートの名前 で指定するときは このようにしてください それぞれ 無いものを指定したときはエラーになります シートが1つしかないのに Sheets(5) と書くと止まります 書いたシート名が間違っていたり あるブックでは Sheet1 他では シート1 なら止まります 順番は必ず正しいなら シートの番号で指定 名前は必ず正しいなら シートの名前で指定します どちらも確実でない時は 別の条件で探すことになります
その他の回答 (1)
- anotherone
- ベストアンサー率54% (35/64)
フォルダ内のファイルはExcelなのでしょうか シートは1つだけでしょうか 特定のシートでしょうか 全てのシートでしょうか 左端のシート 3番目のシート 特定名のシート 条件に合う全てのシート セルはどのセルですか A1でしょうか A1:C3でしょうか
補足
フォルダ内のファイルは全てExcelです。 3シート入っており、名前はSheet1.2.3です。 このなかのSheet1から指定した3つのセルとSheet2から6つ程度のセルを 抜き出し合わせて一覧にしたいと考えています。 セルの位置はこれから検討になります。
お礼
詳しい解説本当にありがとうございます。 大変たすかります。 早速ためしてみたいと思います。