| 
    
     |  | ▼さや さん: おはようございます。
 
 >>Evaluate("Sum((a1:a100 = """") * 1)") = 100
 >について、説明していただけるとありがたいです。
 
 セル範囲が全部空白か否かの判断は、前述したように
 CountBlank関数を使うほうが良い ということをお断りして・・。
 
 Evaluateに関しては、
 
 www.vbalab.net/vbaqa/c-board.cgi?cmd=ntr;tree=8117;id=excel
 
 Helpとここを参照していただくとして・・・。
 
 中身の "Sum((a1:a100 = """") * 1)" これは、
 
 配列数式です。
 
 セルA1:A100以外のセルに
 
 「=Sum((a1:a100 = "") * 1)」(両端の「」は除く)
 
 を指定してください。
 但し、セルの確定は通常のEnterキーではなく、Ctrl+Shift+Enterキーで確定します。
 
 数式バーには、
 
 {=SUM((A1:A100="")*1)}
 
 このように表示されているはずです。
 
 この数式があるセルには、A1:A100全て空白なら、100と表示されます。
 
 A1:A100="" という数式で空白か否かの結果が
 TrueかFalseで100個分の配列として作成されます。
 (空白なら、True、そうでなければFalse)
 
 *1 をすることでブール型のデータを数値に変換しています。
 (True--->1  False--->0)
 
 これのSumつまり、合計を取得しているので空白の個数が求められます。
 
 Evaluateや配列数式は上手に使うと便利です(私は、そう思っています)。
 
 |  |