Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


56183 / 76736 ←次へ | 前へ→

【25311】Re:空白セルの検索
発言  ichinose  - 05/5/27(金) 20:05 -

引用なし
パスワード
   こんばんは。

>無事解決できました!
>ありがとうございました!
>
>もし、お手数でなければ下の、
>>  With Range("a1:a10")
>>   If .Count > Evaluate("sumPRODUCT(ISNONTEXT(" & .Address & ")*1)") Then
>の命令の意味をわかるように教えてもらえますか?

.Countは、A1:A10のセルの個数ですから、10ですよね?

"sumPRODUCT(ISNONTEXT(" & .Address & ")*1)"は、
ワークシート関数を含んだ数式です。
Evaluateメソッドは、この数式を評価した結果を返します。
.Addressで、$A1:$A10というセルアドレスが取得できます。
よって、数式は、

SUMPRODUCT(ISNONTEXT($A$1:$A$10)*1)

と言う事になりますよね?

ここからは、数式を分解していきましょう!!

ISNOTEXT関数は、引数が文字列でなければTrue、文字列ならばFalseを
返します。

仮にA1には「あああ」

A2に「123」(両端の「」は除く)

A3からA10は、空白(未入力)に

入力されているとします。

ISNOTEXT($A$1:$A$10)で

{false;true;true;・・・・・true}
という配列を返します(空白をTrueとして返します)。
さらに

ISNOTEXT($A$1:$A$10)*1

によって、論理値を算術値に変換しています。
(そうしないとSumproductが足し算をしてくれないので)

この結果、上記の配列が論理値から

{0;1;1;・・・・1}

に変換されます。

Sumproduct関数は、上記の配列要素の合計を出します。

よって、9という結果を得ます。

10>9 ですので 「エラー」と表示されます。

Sumproduct関数は、便利ですからその使用方法を
HELPで確認して下さい。

以上です。
0 hits

【25299】空白セルの検索 kouka 05/5/27(金) 12:01 質問
【25301】Re:空白セルの検索 kazu 05/5/27(金) 13:24 発言
【25303】Re:空白セルの検索 ichinose 05/5/27(金) 13:47 発言
【25307】Re:空白セルの検索 kouka 05/5/27(金) 14:30 お礼
【25311】Re:空白セルの検索 ichinose 05/5/27(金) 20:05 発言
【25371】Re:空白セルの検索 kouka 05/5/30(月) 10:00 お礼
【25328】Re:空白セルの検索 akiuma 05/5/28(土) 18:37 発言
【25317】Re:空白セルの検索 [名前なし] 05/5/27(金) 22:42 回答
【25329】Re:空白セルの検索 akiuma 05/5/28(土) 18:40 発言
【25372】Re:空白セルの検索 kouka 05/5/30(月) 10:11 お礼

56183 / 76736 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free