| 
    
     |  | ▼よし さん: こんばんは。
 
 >検索値 = Cells(1, 3)
 >結果 = WorksheetFunction.SumProduct((Columns(1) = 検索値) * 1)
 >とすると「実行時エラー13の型が一致しません」となるのですが
 
 問題がふたつあります。
 
 一つは・・・、
 VBAで
 
 Columns(1) = 検索値
 
 という式が配列として評価されないこと。
 
 
 二つ目は・・・、
 
 Sumproduct関数は列全体を指定出来ないこと。
 セルに
 
 「=Sumproduct((A:A=1)*1)」
 
 と指定してもエラーになりますよ!!
 
 '================================
 Sub test()
 dim ans as variant
 Dim rng As Range
 Set rng = Range("a1", Cells(Rows.Count, 1).End(xlUp))
 ans = Evaluate("sumproduct((" & rng.Address & "=" & Cells(1, 3).Value & ")*1)")
 MsgBox ans
 
 End Sub
 
 Evaluateを使用してみてください。
 
 |  |