• ベストアンサー

VBAで困ってます

VBA勉強中です。 複数のシートにあるデータを1シートにまとめるマクロを作っています。 ----------------------例-------------------- <SHEET1>      <SHEET2> あ 1  か 6    あ 5  か 30 い 2  き 7    い 10  き 35 う 3  く 8    う 15  く 40 え 4  け 9    え 20  け 45 お 5  こ 10    お 25  こ 50 このSHEET1とSHEET2をSHEET3に下記のようにまとめたいのです。 <SHEET3> あ 1  か 6     あ 5  か 30 い 2  き 7     い 10  き 35 う 3  く 8     う 15  く 40 え 4  け 9     え 20  け 45 お 5  こ 10    お 25  こ 50 動作をマクロの記録でみて、その動作を繰り返すようにすればいいのかなと思うのですが。。。なにしろ初心者で困ってます。

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

  • ベストアンサー
  • talosoft
  • ベストアンサー率26% (6/23)
回答No.2

Sheets("Sheet1").Select Range("A1").Select Sheets("Sheet2").Select Range("A1").Select Sheets("Sheet3").Select Range("A1").Select Do Sheets("Sheet1").Select ActiveCell.Copy '相対的にアクティブセルをひとつ下げる処理をいれる Sheets("Sheet3").Select ActiveCell.Paste '相対的にアクティブセルをひとつ下げる処理をいれる Sheets("Sheet2").Select ActiveCell.Copy '相対的にアクティブセルをひとつ下げる処理をいれる Sheets("Sheet3").Select ActiveCell.Paste '相対的にアクティブセルをひとつ下げる処理をいれる Sheets("Sheet1").Select If ActiveCell.Value="" Then Exit Do End If Loop こんな感じでしょうか

az222
質問者

お礼

ありがとうございました!(^^)! ちゃんと動作してくれました。これを元にあとは、いくつかネットで調べたりしてちゃんとしたものが作れました。本当に助かりました(^^)

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.1

質問が不完全、かつ説明不足。例を挙げるのは結構なのだが、文章でも、したいことや、前提を説明しないと、例だけではわからないし、、その内容でプログラムロジックが大幅に変わる。 ーー シート1とシート2は、行単位で、交互(1つずつ)採って一本化すればよいのか(*)。例ではソウ見えるが、何しろ1例だし、質問者もその辺を十分考えて例を作ったとは限らないから、説明が必要。 シート1とシート2で行数が異なるのかどうかも書いてない。 ーー もし、そうなら(*)、第3のシートに 第1の1行目 第2の1行目 第1の2行目 第2の21行目 ・・ という風に、データをとってくれば良いので、聞くほどの事ではない。 ーー 最終行番号をdとして(この出し方はわかるよね。場合によってはシート1とシート2の大きいほうを考える) For i=2 to d シート1のi行をシート3へとってくる シート2のi行をシート3へとってくる Next i 終わり行数がシート1とシート2で異なるときはちょっと工夫して、空白なら とってこない。 ーーー シートが3つ関係するが、コードの上で、きちっとどのシートの セルのことか明記しないといけない。 そのコードは(昨日も質問が出ていたが)わかりますか。