|
おはようございます。
ワークシート関数のMaxやMin関数って、
実際にセルで試してみればわかりますが、元々数値以外は、対象外ですよね!!
ですから、未入力は、未入力を返し それ以外は、Val関数を使って変換した値を返す
という処理を
Dim t(1 To 3) As Variant
t(1) = IIf(TextBox1.Value = "", "", Val(TextBox1.Value)
↑ここで行っています。配列tに""も入れられるようにVariantで宣言しました。
Iif関数は、便利ですが、知らないと無駄な処理時間を費やしてしまうので
要注意です。以下の例
Sub test()
Dim a As Long
Dim b As String
a = 0
b = IIf(a = 0, "0がはいっている", test1(a))
MsgBox b
End Sub
'==================================
Function test1(num As Long) As String
Dim g0 As Long
Dim g1 As Long
Dim g2 As Long
test1 = "何がはいっているかしらべていない"
For g2 = 1 To 200
g1 = 0
For g0 = 1 To 500000
g1 = g1 + 1
Next
Next
End Function
a=0 なのですから、
"0がはいっている" と簡単に表示してくれればよいのに 結構時間がかかりますよね?
上記は、極端な例ですが、こういうこともあるので 注意です。
|
|