• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:EXCEL VBA 複数のファイルをひとつのシートにまとめたい)

Excel VBAで複数のファイルをひとつのシートにまとめる方法

このQ&Aのポイント
  • Excel VBAを使用して、複数のファイルをひとつのシートにまとめる方法について教えてください。
  • 複数のユーザーから送られてくる集計表をまとめるために、Excel VBAを使用していますが、ひとつのファイルのひとつのシートにまとめる方法がわかりません。お手数ですが、解決方法を教えていただけますか?
  • Excel VBAを使用して、複数のファイルをひとつのシートにまとめる方法を教えてください。集計表が複数の人から送られてくるため、効率的にまとめる方法について教えていただけますか?

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

  • ベストアンサー
  • TTak
  • ベストアンサー率52% (206/389)
回答No.1

popinnobakaさんこんにちは。 ファイル名をシートに書き出せるということは、ファイル名の取得ができているわけですから、Openメソッドで、ファイルを開くことが可能ですね。次からが、ちょっとややこしいのかもしれませんが、順を追って動作を考えてみます。纏め用のファイルは、すでに開かれているものとします。 1, 送られて来たデータファイルのうち、1個を開く。 2, データがあるシートをアクティブにする。 3, データ範囲を調べて、コピーする。 4, 纏め用のシートのデータ範囲を調べる。 5, 4で調べた範囲より下の列に、3でコピーした値を貼り付ける。 6, データファイルを閉じる。 7, 次のデータファイルを開く。 8, 以降2~7の繰り返し。 データ範囲を調べる作業は重要です。私の場合、次のような関数を作っています。 Function Myrec(cellsColmun As Integer) As Integer '最下段を調べる Myrec = Range(Cells(ActiveSheet.Rows.Count, cellsColmun) _ .End(xlUp).Address).Row End Function Function Mycol(cellsRow As Integer) As Integer '最右列を調べる Mycol = Range(Cells(cellsRow, ActiveSheet.Columns.Count) _ .End(xlToLeft).Address).Column End Function また、UsedRange プロパティを用いても良いでしょう。 上記1~8までをコーディングする際に注意する点は、アクティブになっているブック、シートなどを意識しなければならないことです。ファイルのオープン→コピー&ペースト→ファイルクローズが繰り返されるからです。マクロは、纏め用のファイルで実行されることと思いますが、それを明示するには、私はThisWorkbookプロパティを多用しています。 まずは、概要的な提案までにとどめます。

popinnobaka
質問者

お礼

ありがとうございます。 難しそうですが、頑張ってみます。 また分からなくなりましたら宜しくお願いいたします。 取り急ぎお礼申し上げます。