• ベストアンサー

入力されたセルが何行あるか調べる方法

エクセルVBAを勉強中です。 2つのsheetを使って表を作っていて、手入力したsheet1から自動でsheet2へコピーする際に、あらかじめsheet1で使っている行数だけsheet2で表を増やしておきたいのです。 sheet1で使っている行の数はどうやって表せばよいのでしょう? 教えてください。

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

  • ベストアンサー
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.1

1.たとえばA列の最終入力行なら MsgBox Sheet1.Cells(Rows.Count, "A").End(xlUp).Row 2.使用範囲内での最終行なら MsgBox Sheet1.Cells(1, 1).SpecialCells(xlLastCell).Row で取得できます。 ただし、2.は、一旦入力されてからクリアしたようなセルもカウントしますので正確とはいえません。

yunako0517
質問者

お礼

回答ありがとうございます。 変動するある範囲内でのB列に入力された行数を知りたいので、 2.の方法かなと思うのですが、クリア済みのセルはカウントされない方法ってないのでしょうか?

その他の回答 (2)

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.3

> 変動するある範囲内でのB列に入力された行数を知りたいので、 範囲がどう変動しようがB列の最終行なら MsgBox Sheet1.Cells(Rows.Count, "B").End(xlUp).Row で、求められますよ。 B列の一番下(2003ならB65536)から Ctrl+↑ で飛ぶ先のセルの行という意味です。

yunako0517
質問者

お礼

ありがとうございます。 この方法で書いてみました。 2つの表をsheetの縦に作ってしまうと、それぞれの表で行数を知ることはこの方法では無理ですよね?

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

End(xlUp).Rowなどのほかに Sub test01() MsgBox Range("A2").CurrentRegion.Rows.Count MsgBox ActiveSheet.UsedRange.Rows.Count End Sub これらは意味を良く知って、適切に使う必要があります。 WEBで各語句で照会のこと。 End(xlUp).Rowは比較的安全と思いますが、反例は作れます。

yunako0517
質問者

お礼

回答ありがとうございます。 大変申し訳ありませんが、コードの意味を教えていただけないでしょうか? ネットで検索しましたが、良く理解できませんでした。

関連するQ&A