• ベストアンサー

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

毎度お世話になっております。 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マクロでこれを自動でやることは出来ないでしょうか?。 以上宜しくお願いいたします。

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

  • ベストアンサー
  • FEX2053
  • ベストアンサー率37% (7991/21371)
回答No.1

単純にその[Shift]+[ctrl]+[→]を自動記録で記録すると、 Range(Selection, Selection.End(xlDown)).Select こういった形になるはずです。要するに End(xlDown) というプロパティ?があって ソレを使うと、上下左右の端が検索できるんです。詳細はマクロのヘルプで検索 してみてください。 で、先にこのやり方で範囲を指定しておき、 cnt = WorksheetFunction.CountIf(Selection, "") という感じでカウントすればいいかと思います。 動作チェックはやっていないので、動作しなかったらごめんなさい。 でも、基本的にはこのやり方で解決できるはずです。

satdesu
質問者

お礼

有難うございました。 少し分かったような気がします。 また質問の内容が言いたい事と違っていたのでさらに質問してみようと思います。 その際には是非ご教授お願いしたいと思っております。 有難うございました。

その他の回答 (1)

  • ASIMOV
  • ベストアンサー率41% (982/2351)
回答No.2

データーが入っている一番下のセルの行は Range("A65535").End(xlUp).Row で、取得できます(A列の場合) >データの途切れるセルまで は Range("A1").End(xlDown).Row です

satdesu
質問者

お礼

お二人とも早速の回答有難うございます。 大変申し訳ないのですがお願いがあります。 当方VBA初心者でお二人のお教えいただいた内容をうまく組み込むことが出来ません。 Sub Sample02_3() Dim cnt As Long cnt = WorksheetFunction.CountIf(ActiveSheet.Range("A1:A11"), "") MsgBox "空白は、" & cnt & "件です。", vbInformation End Sub に組み込むとしたらどのようになるでしょうか。 いろいろ試したのですがうまくいかないのでお教えください。

関連するQ&A