• ベストアンサー

EXCELのブック間の抽出方法を教えてください。

Aという集合ブックがあります。B~Eの個人ブックがあります。 今現在は、マクロの自動記録を使って B~EのブックのB6:F25のセルを自動で AのブックのB6以降のセルに順番に貼り付けてくるようにしてますが、 ブックによってはB15の行までしか入力が無いものもあり、 空白の行までコピーしてきて見辛くなってしまってます。 空白行は抽出しないようにしたいのですが 何かいい方法がありましたら教えてほしいです。 宜しくお願い致します。

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

  • ベストアンサー
  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.2

#1と違った切り口で、貼り付け先のセルを集約ブック・シートB列のデータの入った最終セルの一つ下にすれば、空白をコピーして来ても関係なくなります。 Selection.Offset(1, 0).Select は、自動記録では得られないので、覚えるしかないです。 また、貼付先が空の時に誤動作しますので、IF文で分岐させています。ご参考まで。 Sub test() Windows("Book1.xls").Activate Sheets("Sheet1").Select Range("B6:F25").Select Selection.Copy Windows("Book2.xls").Activate Sheets("Sheet1").Select Range("B6").Select If Range("B6").Value <> "" Then Range("B65536").Select '2003以前の場合 Selection.End(xlUp).Select Selection.Offset(1, 0).Select End If ActiveSheet.Paste End Sub

kumi4520
質問者

お礼

ありがとうございます。 いっぱいお答えしてもらったんですけど、なにがなにやら分からなくて、とりあえず本で調べたりしてますけど、マクロが全然分からないので、勉強しないとです(ノω`*)アハッ ブック1とブック2って記述にありますけど、ブック3以降は同じような記述で追加したらいいものなのか、よくわからないことばかりなので、とりあえず貼ってみて動きを見ながら研究してみます。

すると、全ての回答が全文表示されます。

その他の回答 (1)

回答No.1

マクロの記録で個人ブックでコピー範囲を決める箇所は 1. B6を選択する。 2. [Shift] を押したまま [End] を 1回押す。(Shift を離さずに) [↓] を 1回押す。 3. (Shift を離さずに) [End] を 1回押す。(Shift を離さずに) [→] を 1回押す。 という操作で記録してみては? [End]+[カーソルキー] はデータが連続して入力されていることが条件なので、場合によっては 2 と 3 を入れ替える必要があるかもしれないし、この方法が使えない可能性もある。 Range("B6").Select Range(Selection, Selection.End(xlToRight)).Select Range(Selection, Selection.End(xlDown)).Select

kumi4520
質問者

お礼

ありがとうございます。 B6がコピーのトップですけどB6~F6を下方向にコピーする場合は、B6~F6をドラックしてから2と3を処理したらいいのかなぁ・・・ マクロって処理は便利だけど分からない事ばかりで、難しいですね。。。

すると、全ての回答が全文表示されます。

関連するQ&A