• ベストアンサー

Excel で位置が変動するセルの指定をVBAで作りたいのですが・・・?

 ExcelのVBAはほとんど初心者なのです。  申し訳ございませんが教えていただきたいのです。  ひとつのシートに表が3種類あるのですが、それぞれ違うデータを  貼り付けようとしています。  元の表の形は同じです。3行の表でデータの数によって行が挿入  するようになっています。  1つ目の表は、開始のセルは決まっているので指定は出来るのですが  2つ目・3つ目の表の開始セルがその時々で変わってきます。  その時の、開始セルのマクロを作成したいのですが分からなくて  教えて下さい。  よろしくお願いします。  説明が下手ですみません。    

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

  • ベストアンサー
  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.3

Sheets(3)に2つめのデータがあるとして 2つめ 3つめのマクロとして 以下のマクロでは希望と違いますか? Sub test2() Sheets(3).Select Range("B3:H100").Select'適当な行範囲指定してあります。 Selection.Copy Sheets(1).Select Range("B65536").End(xlUp).Offset(1, 0).Activate Selection.PasteSpecial Paste:=xlPasteValues Application.CutCopyMode = False End Sub

aine1225
質問者

補足

 すばやい対応ありがとうございます。  先程の回答でしてみたら希望通り動きかけています。  後もうすこしなのですが、コピーする前にデータ分の  行を挿入するのですがどうしたらいいのか教えてください  (例)   Range("B5").Resize(行数 - 4, 1).EntireRow.Insert       ↑    この部分の指定も教えていただけますか?  何度も何度も申し訳ございません

その他の回答 (4)

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.5

>コピーする前にデータ分の行を挿入する 1つめのデータと2つ目のデータの間に空白の行を入れるということでしょうか? Sheets(1).Select Range("B65536").End(xlUp).Offset(1, 0).Activate を Sheets(1).Select Range("B65536").End(xlUp).Offset(3, 0).Activate Offset(行,列) 行の数字を変えるとコピイの先頭行が変わります。

aine1225
質問者

お礼

 hallo-2007様  下手な質問に何度も、ご回答をしていただきまして  ありがとうございました。無事にマクロが組み込めました。  いろいろな組み方があり、今後の参考にしたいと思います。    本当にありがとうございました。

回答No.4

3つの表それぞれの選択範囲先頭セルに名前をつけておき、 Application.Goto Reference:="Moto1" Selection.CurrentRegion.Select Application.Goto Reference:="Saki1" Selection.PasteSpecial Paste:=xlPasteValues のように記述するのはいかがでしょうか。

aine1225
質問者

お礼

お礼が遅くなりまして申し訳ございません。  すごく分かりにくい質問だったのにご回答していただき  ありがとうございました。  すごく役にたちました。無事にマクロが組み込めました。  本当に、ありがとうございました。  まだまだいっぱい、分からない事がありますので  質問をしていたらよいアドバイスをよろしくお願い  します。  

  • keirika
  • ベストアンサー率42% (279/658)
回答No.2

仮に1つ目の表がA1セルから開始するとします。 まず、表1を貼り付けた後、1行あけた次のセルを選択する場合は Range("a1").End(xlDown).Offset(2, 0).Select さらに表2を貼り付け、1行あけるには ActiveCell.End(xlDown).Offset(2, 0).Select 次に表3を貼り付けと続きます。 ただし条件として、左端のデータに空白が無いことが前提となります。 また、この場合表を縦一列に並べることになりますので、 任意の位置に貼り付ける場合は、さらに工夫が必要になります。

aine1225
質問者

お礼

 今回は、本当にありがとうございました。  分かりにくい質問にご回答いただきまして、すごく参考に  させていただきました。  また、よいアドバイスをお願いいたします。  ありがとうございました。

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.1

>2つ目・3つ目の表の開始セルがその時々で変わってきます。 表の開始セルにどんな規則性があるのかわからなければ・・・ Sub Test() Range("A65536").End(xlUp).Offset(3, 0).Activate End Sub 上記は A列にデータが既に入っていて その3行下のセルの指定します。

aine1225
質問者

補足

早速のご回答ありがとうございました。  説明が足りなくて申し訳ございません。  補足として1つ目の表のマクロを記載します。  これで分かりますか?    Sub test() Sheets(2).Select Range("A1").CurrentRegion.Select Dim 行数 As Long 行数 = Selection.EntireRow.Count If 行数 > 3 Then Sheets(1).Select Range("B5").Resize(行数 - 4, 1).EntireRow.Insert End If Sheets(2).Select Selection.Copy Sheets(1).Select Range("B3").Select Selection.PasteSpecial Paste:=xlPasteValues Application.CutCopyMode = False Range("A1").Select Sheets(1).Move ThisWorkbook.Close False End Sub  また分からなければ補足いたしますのでよろしくお願いします。

関連するQ&A