最新閲覧日:

こんばんは!!
EXCEL VBAを使い出して、初日からつまずいてます・・・。
みなさん、アドバイスよろしくお願いします!!

で、早速、質問なんですけど、
指定したセル範囲のいずれかに入力があるか調べたいんですけど、それができるプロパティとかってあるんでしょうか?
地道にセル毎にチェックするしかないいんでしょうか??

たとえば、範囲をA1:H1として、その範囲内のセルに何か入力があったらTrueが返ってくるとか・・・。

もし、知ってる方がいらっしゃたら教えてください!!
よろしくお願いします!!!!!

A 回答 (2件)

>これは、まず範囲を選択して、入力チェック()を呼ぶことなのでしょうか


書いたモジュールは範囲が指定してあります。("A1:H11"は間違いです。質問からすると"A1:H1"です)何もしないで入力チェックを実行します。
モジュールを CountA(Selecton) に変えれば任意の選択範囲がチェックの対象になります。任意の範囲を選択して実行します。
メッセージは確認するためで、IF ・・・・ で入力有無が判定できます。

>ワークシート関数CountAってどうやったら出てくるんですか??
ついApplicationと書いてしまうんですが、『WorksheetFunction.』と打てば、候補の関数名が表示されると思います。

下記の fnc入力チェック は入力有無を返すユーザー定義関数です。
書き方の例です。分かりやすくなった?この例は引数に"A1:H1"をセットしています。任意の範囲にするには Selection.Address に変えます。

Sub 入力チェック()
  Dim 入力有無フラグ As Boolean        '入力有無の答え

  入力有無フラグ = fnc入力チェック("A1:H1")  'モジュール内でA1~H1を指定(固定)

  MsgBox 入力有無フラグ            '帰ってきた答えをメッセージボックスで確認
End Sub

'入力有無を返すユーザー定義関数
Function fnc入力チェック(checkAddress As String)
  If WorksheetFunction.CountA(Range(checkAddress)) > 0 Then
    fnc入力チェック = True
  Else
    fnc入力チェック = False
  End If
End Function
    • good
    • 0
この回答へのお礼

詳しい説明どうもありがとうございます!!

おかげさまで、うまくチェックできました(^-^)

なにぶん初心者なもので、またつまずいちゃったら質問にきますので、
その時はまた、どうぞよろしくお願いします~m(__)m

ありがとうございました!

お礼日時:2001/12/19 17:20

地道というか、指定範囲の入力個数を調べてみました。


Range("A1:H11") を Selection に変えれば、選択した範囲のチェックができます。

Sub 入力チェック()
  'ワークシート関数CountAで指定範囲の入力個数をカウントする
  '数値入力か文字入力のどちらか不明なためCountAで判定。入力があれば、Ifの判別式はTrue
  If Application.CountA(Range("A1:H11")) > 0 Then
    '入力があればTrueでこのメッセージがでます
    MsgBox "入力があります!"
  Else
    '入力がなければFalseでこのメッセージがでます
    MsgBox "入力はありません"
  End If
End Sub

この回答への補足

早速のお返事、ありがとうございます。

これは、まず範囲を選択して、入力チェック()を呼ぶということなのでしょうか??
それから、ワークシート関数CountAってどうやったらでてくるんですか??

ちなみに入力は、数値入力でも文字入力でも構いません。
範囲内にとりあえず何か入ってたらTrueでいいです。

すいません・・・。
nishi6さんのお時間が空いている時があったら、またよろしくお願いします。

補足日時:2001/12/19 09:39
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報

カテゴリ