• ベストアンサー

最終行を取得して、別の列にコピーするマクロ

最終行を取得して、別の列にコピーするVBAマクロを教えてください。 (Excel2003です) 具体的には、次の通りです。 (1)A2から下方に項目NOが入っています。可変です。  A2から項目NOの最終行までの行数をカウントします。 (2)B3:D3には数式が入っています。  B4:D4以下に数式を(1)で取得した行数分だけコピーします。 かなり緊急で困っています。 教えていただけると助かります。

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

  • ベストアンサー
  • ziziwa1130
  • ベストアンサー率21% (329/1546)
回答No.3

一例です。 Sub Macro1() Dim n As Long, I As Long Range("A2").Select n = 0 Do Until ActiveCell.Value = Empty n = n + 1 ActiveCell.Offset(1, 0).Select Loop For I = 1 To n - 1 Range("B3:D3").Select Selection.Copy ActiveCell.Offset(I, 0).Select ActiveSheet.Paste Next Application.CutCopyMode = False End Sub

rkoyama77
質問者

お礼

ありがとうございました。 おかげさまで解決しました。

その他の回答 (2)

  • xls88
  • ベストアンサー率56% (669/1189)
回答No.2

一例です。 Dim n As Long n = Range("A2", Range("A" & Rows.Count).End(xlUp)).Rows.Count Range("B3:D" & 3 + n - 1).Formula = Range("B3:D3").Formula あるいは、B3:D3をコピーしてもよいと思います。 Dim n As Long n = Range("A" & Rows.Count).End(xlUp).Row + 1 Range("B3:D3").Copy Range("B4:D" & n)

rkoyama77
質問者

お礼

ありがとうございます。 B3:D3をコピーする方法で実現できました。

  • edomin7777
  • ベストアンサー率40% (711/1750)
回答No.1

http://members.ld.infoseek.co.jp/nkworks03/ExcelTips/ExcelTips.htm の 「XLS00006」 は、参考になりますか?

rkoyama77
質問者

お礼

ご回答ありがとうございました。 最終行の取得方法は分かりましたが、 列の最終行をカウントして別の行列セルからコピー開始することができません。 この部分です。 (2)B3:D3には数式が入っています。  B4:D4以下に数式を(1)で取得した行数分だけコピーします。 よろしくお願いいたします。

関連するQ&A