新しく質問する

VBAで「Shift+ctrl+↓」のようなコード

役に立った:1件
  • 質問者:satdesu
  • 投稿日時:2006/11/01 13:43
  • 困り度:すぐに回答が欲しいです
  • 友達に紹介
  • ブログに書く
  • 教えて!gooお気に入り

毎度お世話になっております。
VBA初心者です、下記の内容お教えください。

Sub Sample02_3()
Dim cnt As Long
cnt = WorksheetFunction.CountIf(ActiveSheet.Range("A1:A11"), "")
MsgBox "空白は、" & cnt & "件です。", vbInformation
End Sub

のようなコード
A1からA11のセルの中から空白を数えるマクロを作成しました。

ただこの場合だとワークシート上で検索範囲がA12以降に増えた場合
・A12以降を数えません。
・列全部を範囲にした場合、表外の空白まで数えてしまいます。

手動でやる場合は
検索列先頭で「Shift+ctrl+↓」でデータの途切れるセルまで選択をするのですが
VBAマクロでこれを自動でやることは出来ないでしょうか?。

以上宜しくお願いいたします。

この質問への回答は締め切られました。
このQ&Aは役に立ちましたか?(役に立った:1件)
  • 参考になった:0件

No.2ベストアンサー10pt

  • 回答者:ASIMOV
  • 回答日時:2006/11/01 14:37

データーが入っている一番下のセルの行は

Range("A65535").End(xlUp).Row

で、取得できます(A列の場合)

>データの途切れるセルまで


Range("A1").End(xlDown).Row

です

通報する

この回答へのお礼

お二人とも早速の回答有難うございます。

大変申し訳ないのですがお願いがあります。
当方VBA初心者でお二人のお教えいただいた内容をうまく組み込むことが出来ません。

Sub Sample02_3()
Dim cnt As Long
cnt = WorksheetFunction.CountIf(ActiveSheet.Range("A1:A11"), "")
MsgBox "空白は、" & cnt & "件です。", vbInformation
End Sub

に組み込むとしたらどのようになるでしょうか。

いろいろ試したのですがうまくいかないのでお教えください。

  • 参考になった:0件

No.1ベストアンサー20pt

  • 回答者:FEX2053
  • 回答日時:2006/11/01 14:34

単純にその[Shift]+[ctrl]+[→]を自動記録で記録すると、

Range(Selection, Selection.End(xlDown)).Select

こういった形になるはずです。要するに End(xlDown) というプロパティ?があって
ソレを使うと、上下左右の端が検索できるんです。詳細はマクロのヘルプで検索
してみてください。

で、先にこのやり方で範囲を指定しておき、

cnt = WorksheetFunction.CountIf(Selection, "")

という感じでカウントすればいいかと思います。

動作チェックはやっていないので、動作しなかったらごめんなさい。
でも、基本的にはこのやり方で解決できるはずです。

通報する

この回答へのお礼

有難うございました。
少し分かったような気がします。

また質問の内容が言いたい事と違っていたのでさらに質問してみようと思います。

その際には是非ご教授お願いしたいと思っております。

有難うございました。

  
このQ&Aは役に立ちましたか?(役に立った:1件)

このページのトップへ

Facebook公式ページ

公式Twitter