質問: (VBA) Evaluate関数の引数の書き方を教えて下さい プログラム前段で ●ITEM 及び Z3 ( 1 以上の数値) ●COMP に (比較演算子) が入れられて当該部分に到来します >
回答: 【補足コメント】 ウォッチ式でみると ITEM > 1 は評価式でTrue/Falseの結果を返しますが ITEM & COMP & (Z3+1) は文字列の式になり、このままではTrue/Falseを返しません。 つまり (ITEM > 1) And (ITEM & COMP & (Z3+1)) は、True And "3<5"という式となり、「型が一致しません」というエラーになります。 よって"3<5"を評価するためには、最初に回答したとおりEvaluateで個別に評価するか、どうしてもEvaluateの中に押し込めたいのであれば、 Evaluate(ITEM > 1 And ExecuteExcel4Macro(ITEM & COMP & (Z3 + 1))) という手でしょうか。 Sub CMP() Dim ITEM As Long Dim Z3 As Long Dim COMP As String ITEM = 3 Z3 = 4 COMP = "<" Debug.Print Evaluate(ITEM > 1) And Evaluate(ITEM & COMP & (Z3 + 1)) End Sub ではダメですか。