• ベストアンサー

EXCEL マクロ もし、最終行が10000件を超えたなら。。

こんにちは。 CurrentRegion.Rows.Count などを使って、 『もし、最終行が10000件を超えたなら、メッセージ”データが1万件を超えました』と表示させるには どうしたらよいでしょうか?

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.1

こんにちは。 通常は、以下のように使います。 '----------------------------------- Sub test1() dim r As Long r = Range("A65536").End(xlDown).Row If r > 10000 Then   MsgBox "データが1万件を超えました。" End If End Sub 'しかし、CurrentRegion を使う場合は、例えば、このような方法を取ります。 '----------------------------------- Sub test2() Dim rng As Range, r As Long Set rng = Range("A1").CurrentRegion r = rng(rng.Cells.Count).Row If r > 10000 Then   MsgBox "データが1万件を超えました。" End If End Sub あまり、ひとつの方法にこだわらないほうがよいですね。

tabtab9
質問者

お礼

こんばんは。 ありがとうございます。 早速、使わせていただきました。

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

その他の回答 (3)

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

●#2です。CurrentRegion.Rows.Countなんてのを見たから#2のようなのを あげましたが、この手のVBAは、動的でない。 入力した機会に走らない。 超えたときに、このルーチンを走らす保証がない。 ●SelectionChangeイベントブロシージュアーで設定してもできそうだが、平凡。 ●別に思いついたのが、データー入力規則で A1:A10000を範囲指定。そして データ-入力規則ー(入力値の設定)ユーザー設定ー(数式) =COUNTA($A$10001:$A$65536)=0 (エラーメセージに適当なものを入れないと、何のエラーかわからないので注意。) とする。$がいるらしい、OK分の=0を設定するなど試行錯誤しました。 VBAにするなら、これをマクロの記録をとって使えばどうですか。

tabtab9
質問者

お礼

ありがとうございます。 ちょっと...むずかしそうですが、チャレンジしてみます。

すると、全ての回答が全文表示されます。
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

#1 です。 間違えました。 Range("A1").End(xlDown).Row でした。

すると、全ての回答が全文表示されます。
  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.2

私は d = Range("A65536").End(xlUp).Row If d > 10000 Then とします。#1のご回答とUpとDownの違いです。

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

関連するQ&A