5

最初に数字を受け入れる VB アプリケーションを構築しています。ユーザーが入力ボックスのいずれかでキャンセルボタンを押した場合に終了できるようにしたい。コードは次のとおりです。

Private Sub Command1_Click()
Dim a, b, c, d As Integer
Dim response As Integer
Dim a1, b1, c1, d1 As String
a = InputBox("Enter Numerator 1")
b = InputBox("Enter Denominator 1")
c = InputBox("Enter Numerator 2")
d = InputBox("Enter Denominator 2")

a1 = Str(a)
b1 = Str(b)
c1 = Str(c)
d1 = Str(d)

If a1 <> "" And b1 <> "" And c1 <> "" And d1 <> "" Then
'All Actions
...
Else

 response = MsgBox("Are you sure you want to quit?", vbYesNo + vbQuestion, AdditionV1.0")
 If response = vbYes Then
 End
 Else
 Addition.Show
 End If

StrPtr を使用してみましたが、まだ機能しません。キャンセルを押しても、エラー メッセージが表示されます。

助けていただければ幸いです。

4

2 に答える 2

7

StrPtr行く方法です。関連するコードを表示していないため、何が間違っていたのかわかりません (ただし、コードにはいくつかのエラーがあります)。原則として、次のように動作します。

Dim a As String
a = InputBox("Enter Numerator 1")
If StrPtr(a) = 0 Then
    ' Nothing was entered.
End If

a1元の変数ではなく etc. にチェックを適用したと思われます。これは機能しないだけでなく (Str文字列が null 以外になるように強制する)、意味もありません: とにかく、これらの変数は何のためにあるのでしょうか?

さらに、すべての変数宣言が間違っています。以下:

Dim a, b, c, d As Integer

宣言しa、として。のみになります。このため、およびその他の理由 (読みやすさ) から、1 つのステートメントで複数の変数を宣言しないでください。必ず別々に宣言してください。ああ、意味のある名前を使用してください。、、、役に立ちません。bcVariantdIntegerabcd

于 2012-01-01T10:37:04.340 に答える
0

私があなたの質問を正しく理解していれば、ユーザーがキャンセル ボタンを押した瞬間に処理を停止したいと考えています。

次のようなことをお勧めします (変数を InputBox からの割り当ての a1、b1、c1、d1 に変更したことに注意してください)。

    Private Sub Command1_Click()
    Dim a, b, c, d As Integer
    Dim response As Integer
    Dim a1, b1, c1, d1 As String

    a1 = InputBox("Enter Numerator 1")
    if (a1 = "")
       exit sub
    endif

    b1 = InputBox("Enter Denominator 1")
    if (b1 = "")
       exit sub
    endif

    c1 = InputBox("Enter Numerator 2")
    if (c1 = "")
       exit sub
    endif

    d1 = InputBox("Enter Denominator 2")
    if (d1 = "")
       exit sub
    endif


    If a1 <> "" And b1 <> "" And c1 <> "" And d1 <> "" Then
    'All Actions
    ...
    Else

     response = MsgBox("Are you sure you want to quit?", vbYesNo + vbQuestion, AdditionV1.0")
     If response = vbYes Then
     End
     Else
     Addition.Show
     End If
于 2012-01-01T10:33:17.703 に答える