テキストボックス内の無効な値をチェックすることの欠点

テキストボックス内の無効な値をチェックすることの欠点

対応するテキストボックスにそれぞれ記録されている 4 つの関数 fi(x) の入力データから回帰分析を実行するユーザーフォームを作成しています。

画像1

入力関数が有効かどうかを確認するために、2 つの条件を提案しました。最初の条件は、テキスト ボックスが空でないことを確認するものです (これは機能します)。

If p = 1 Then
    box = MsgBox("No functions were provided for regression analysis.", vbInformation, "Regression Toolbox Info")
    Exit Sub
End If

2 番目では、入力された値のいずれかが有効でない場合、x の関数ではないため、計算を実行できないテキストやその他の数字が入力された場合などに通知されることを確認します。

For i = 2 To p
    If (fxn(i - 1) = "x") Then
    ElseIf IsError(Evaluate(Replace(fxn(i - 1), "x", 2))) Then
        box = MsgBox("The f" & i - 1 & "(x) input is invalid as it is not a function of x." & _
        "Check your data input and correctness of syntaxis of f(x) functions." & _
        vbNewLine & vbNewLine & "If you want to type in only x you should type in ""1*x""." & _
        vbNewLine & vbNewLine & _
        "Several functions with multiplication of x (e.g. fx1 = 1*x, fx2 = 2*x)" & _
        "are not allowed.", vbCritical, "Error!")
        Exit Sub
    ElseIf InStr(fxn(i - 1), "x") = 0 Then
        box = MsgBox("The f" & i - 1 & "(x) input is invalid as it is not a function of x", vbCritical, "Error!")
        Exit Sub
    End If
Next i

最後の点に関して、これまでのコードは失敗を記録しています。各テキストボックスに有効な関数を入力したにもかかわらず、無効な入力であるというメッセージが表示され、つまり、どの値も無効な入力として扱われます。行を何度か変更してみましたが、同じエラーが繰り返し発生します。どこで間違いを犯し、目的の結果に到達できないのでしょうか?

貴重なご協力に心より感謝申し上げます。

pdt: 次のリンクでワークブック、私が取り組んでいるコードを含むワークブックを見つけることができます。検証に関連する行を省略すると、完全なコードは完璧に機能しますが、各テキストボックスに入力されたデータの検証が欠落し、有効なエントリであるかどうかを確認できなくなります。

関連情報