- ベストアンサー
エクセルで使用中の参照元ファイルからデータを取得する方法教えてください
参照元の入力ブックA、B、Cから統合ブックにデータをまとめたいと思っています。 A・・・A5:Cのデータのある最終行まで B・・・D5:Hのデータのある最終行まで C・・・I5:Kのデータのある最終行まで 統合ブックにそれぞれの列行のまま貼り付ける このようなABCファイルが、現在閉じた状態であっても、使用中の状態であってもそれぞれの列を取り込んで(コピーして)統合ブックに一まとめにしたいのですが、このような条件でこのようなことは可能でしょうか。どのようにしたらできるか知りたいので、教えていただけたら助かります。宜しくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
以下のようなVBAコードを統合したいエクセルファイルにコピー・ペーストしてください。 (1)統合する本体と、A・B・Cエクセルファイルすべてが同じフォルダに入っていることが必要です。 (2)各A・B・Cファイルには、1つのデータシートしかないとします。(シート名で区別もできますが今は簡単な方法で) (3)WB()は、各エクセルファイルの名前 RR()は、そのファイルのどの列をコピーするか TR()は、統合ファイルのどの列から貼り付けするか を表しています。 (4)これを動かすと、各エクセルファイルの該当列データがすべて統合シートにコピーされますが、1行目から4行目の部分もコピーされます。不要ならこの部分を削除しましょう。 Sub Tougou() Dim WB(3), RR(3), TR(3) As String Dim sfolda As String Dim i As Integer WB(1) = "A.xls" WB(2) = "B.xls" WB(3) = "C.xls" RR(1) = "A:C" RR(2) = "D:H" RR(3) = "I:K" TR(1) = "A:A" TR(2) = "D:D" TR(3) = "I:I" '現在のフォルダのパスを設定 sfolda = ThisWorkbook.Path & "\" 'ちらつきをなくす Application.ScreenUpdating = False 'ファイルオープン For i = 1 To 3 'ファイルオープン Workbooks.Open (sfolda & WB(i)) 'コピーペースト Windows(WB(i)).Activate Columns(RR(i)).Select Selection.Copy Windows("Tougou.xls").Activate Columns(TR(i)).Select ActiveSheet.Paste Application.CutCopyMode = False 'ファイルクローズ Workbooks(WB(i)).Close False Next i End Sub
その他の回答 (2)
- n-jun
- ベストアンサー率33% (959/2873)
範囲が固定されているのであればいいですが、”データのある最終行”を求めるには、 ブックを開いてみないとわからないと思いますけど。 方法があったらごめんなさい。
お礼
ご回答ありがとうございます。
- minbow
- ベストアンサー率43% (24/55)
参照したいデータ(データ座標「sheet1のA1」)のあるブック(ファイル名「ファイルA」)と、とりまとめ一覧にしたいブック(ファイル名「ファイルD」)を2窓表示にします。 ファイルDの表示させたいセルに「=」を入力し、ファイルAの該当データを範囲指定してやると「=[ファイルA}sheet1$A$1」と表示され、参照したいブックが未使用状態であっても、一覧にしたいブックで利用できます。 …ということでご希望の回答に合致してましたでしょうか? (的外れな回答でしたらごめんなさい)
お礼
ご回答ありがとうございました。
お礼
ありがとうございました。このようにしたいと思っていました。 助かります、ありがとうございました。