dポイントプレゼントキャンペーン実施中!

多数のユーザーから集計表が送られてくるので、いくつかの取り纏めの箇所を経由して集計をまとめようと思います。

マクロでそれぞれの集計表を特定のフォルダに格納し、フォルダ内の対象ファイルを探し、そのファイル名をシートに書き出すところまで行ったのですが、ひとつのファイルのひとつのシートにまとめる方法がわかりません。

(元の集計表は総て同じレイアウトになっています。
これをひとつのシートの下方向に追加していくようにひとつの表にまとめたいのです。)

ある取り纏め担当者は3つのファイルをまとめれば済むかもしれませんが、ある担当者は20個のファイルをまとめないといけないかもしれません。
この後をどうすればよいか、どなたかお教えください。
宜しくお願いいたします。
説明が分かり難いようでしたら申し訳ございません。

A 回答 (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プロパティを多用しています。
まずは、概要的な提案までにとどめます。
    • good
    • 0
この回答へのお礼

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

お礼日時:2002/07/01 18:16

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!