- 締切済み
複数のExcelブックの可視セルを統合VBA
いつもお世話になっております。 複数のExcelブックの可視セルのみを、別のブックの1つのシートに統合することはできるのでしょうか? やりたいことは、始めに複数人に同一ファイルを配布し、1つのフォルダにそれを纏め、各担当者ごとでフィルタを掛けた部分(可視セル)だけを1つのブックの2シート目(1シート目はAccessにリンクさせています)に纏めたいと思っております。 ファイルは、1行目に集計・2行目に各項目があり、必要データは3行目からです。 VBA初心者の為、どなたかおわかりになる方いらっしゃいますでしょうか? 宜しくお願いいたします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- keithin
- ベストアンサー率66% (5278/7941)
>やりたいことは、始めに複数人に同一ファイルを配布し、1つのフォルダにそれを纏め、各担当者ごとでフィルタを掛けた部分(可視セル)だけを1つのブックの2シート目(1シート目はAccessにリンクさせています)に纏めたい どこからどこまでをあなたが手で準備し、どこから先をマクロにやらせたいのですか。 状況が不明なので、各ブックに内容不明のフィルタをかけて所定のフォルダに集めておく所まで、あなたが事前に準備することにします。 準備: 謎の所定のフォルダはとりあえずc:\test\とします 集めたブックはシートが1枚しか無いものとします 各ブックにはあなたがフィルタをかけた状態で、保存しておきます マクロの仕事は、 1.c:\test\に入っているブックを1冊ずつ順繰り開き、 2.その1枚目のシートの 3.オートフィルタで絞り込まれている範囲をコピーして 4.シート2の上から順に貼り付けていく ことにします #といった段取りを、ご相談の状況を持ってるあなたがまず考えて下さい。 sub macro1() dim myPath as string dim myFile as string mypath = "c:\test\" ’あなたの実際に合わせて正しく記入する myfile = dir(mypath & "*.xls*") on error resume next do until myfile = "" ’ブックを開いてコピーする workbooks.open mypath & myfile activeworkbook.worksheets(1).autofilter.range.offset(1).copy _ destination:=thisworkbook.worksheets(2).range("A65536").end(xlup).offset(1) ’作業を終えたら閉じて次のブックを探す workbooks(myfile).close false myfile = dir() loop end sub 言わずもがなですが、マクロは集約ブックの標準モジュールに登録します。