• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:EXCEL複数のファイルから指定されたデータを抽)

Excelマクロ初心者が200個のファイルから指定データを抽出したい

このQ&Aのポイント
  • Excelマクロ初心者のため、200個のファイルから特定のデータを抽出したいです。ファイルは同じフォルダにあり、シートの構造も同じです。データの一部を新しいファイルに集計したいと考えています。
  • マクロを使用して、複数のExcelファイルから特定のデータを抽出し、新しいファイルに集計する方法を教えてください。ファイル名やデータの順番は問題ありません。
  • Excelにおけるマクロの使い方を教えてください。200個のファイルから特定のデータを抽出し、新しいファイルにまとめたいと考えています。ファイル名やデータの位置は異なっていても構いません。

質問者が選んだベストアンサー

  • ベストアンサー
  • HohoPapa
  • ベストアンサー率65% (455/693)
回答No.3

>約200個のエクセルファイルがあります。 >名前はバラバラです。 >ファイル名0002、シート1のA2のセルで記載されている >「文字」もしくは「数字」を新しいブックののA2にコピーして、ファイル名をB2記入したい。 これらの説明からは、 ファイル名を何らかのルールで解析し 「取りに行くセル番地」と「取得結果を格納するセル番地」を決める。 このように読み取れますが、 そうではなく、 単に約200あるエクセルファイルに1ファイルずつアクセスし ファイル名に依存しない、固定的に決まったシート、セル番地の値とそのファイル名を シートのA,B列にかき集めればいいのではないでしょうか。 後者であれば、 https://okwave.jp/qa/q9797851.html に似た求めなので ちょっと手直ししてポストします。いかがでしょうか? Sub sampleX()     Const Path As String = "C:\Users\papa\Desktop\新しいフォルダー\"   '↑:かき集める対象フォルダー  Const ShName = "Sheet1" '取得する対象シート名  Const tgCell = "A1"   '取得する対象セル番地  Dim buf As String  Dim cnt As Long    cnt = 0  buf = Dir(Path & "*.xlsx")  Do While buf <> ""   cnt = cnt + 1 '出力先行番号   Cells(cnt, 1).Value = _     GetCellValue(Path & buf, ShName, tgCell)   Cells(cnt, 2).Value = buf   buf = Dir()  Loop End Sub '//--------------------------------------------------------- '// データ取得関数 '//--------------------------------------------------------- Function GetCellValue(MyPath As String, _   ShName As String, _   MyAddress As String) As Variant  Dim SQL As String  Dim cn As Object  Dim rs As Object    Set cn = CreateObject("ADODB.Connection")  Set rs = CreateObject("ADODB.Recordset")  cn.Provider = "Microsoft.ACE.OLEDB.12.0"  cn.Properties("Extended Properties") = "Excel 12.0;HDR=NO;IMEX=1"  cn.Open MyPath  SQL = ""  SQL = SQL & "select F1" & vbCrLf  SQL = SQL & "FROM [" & ShName & "$" & MyAddress & ":" & MyAddress & "]" & vbCrLf  rs.Open SQL, cn  GetCellValue = rs("F1")  rs.Close  cn.Close  Set rs = Nothing  Set cn = Nothing End Function

businesstkd
質問者

お礼

助かりました‼️

その他の回答 (2)

  • masnoske
  • ベストアンサー率35% (67/190)
回答No.2

シートが15個あるようですが,それぞれどのように纏めたいのですか? ファイル名0001、シート1のA1→新しいブックの1行目にコピー ファイル名0002、シート1のA2→上記ブックの2行目にコピー ここまではわかりますが,残りの14個のシートの扱いがわかりません. 元ファイルのシート2は,新しいブックのシート2にコピーすれば良いですか?

  • masnoske
  • ベストアンサー率35% (67/190)
回答No.1

ファイル名0001、シート1のA1のセルで記載されている「文字」もしくは「数字」を新しいブックののA1にコピーして、ファイル名をB1記入したい。 ファイル名0002、シート1のA2のセルで記載されている「文字」もしくは「数字」を新しいブックののA2にコピーして、ファイル名をB2記入したい。 都度,新しいブックを作成するということですか. あるいは,最初に作成した新しいブックに追加するということですか.

businesstkd
質問者

補足

補足致します。 説明不足で、申し訳ございません。 フォルダの中にそれぞれ客の名前のファイルがございます。 抽出したいデータは、そのファイルの中の特定したセルの「文字」や「数字」です。 それを一つのシートに纏めたいです。 抽出したデータを新しいブックに整理したいです。ファイル名毎に纏めたいです。 Aさんのファイルの中の特定したセルの「文字」や「数字」をセルA1に、ファイル名をセルB1に。 Bさんのファイル中の特定したセルの「文字」や「数字」をセルA2、ファイル名をセルB2に。 のような事でございます。 よろしくお願いします。