Call文の使い方


1266  2008-03-03 12:41:23  No: 100377  IP: 192.*.*.*

すいません、すごい初心者です。
  下記のような内容で、call文を使用したいのですが、Text1かText2が空白だった場合、Private Function Chk() ではきちんと動作するのですが、戻ってきてから、エラーになります。そこまでは解ったのですが、ではどうすればよいのかが解らないので、どうかご教授願えませんでしょうか?
  (call文を使用して、なるべく短いソースにしたいのです)
  宜しくお願いします。 

Private Sub tasu_Click()
    Call Chk
    Text3.Text = CStr(CDbl(Text1.Text) + CDbl(Text2.Text))
End Sub

Private Sub hiku_Click()
    Call Chk
    Text3.Text = CStr(CDbl(Text1.Text) - CDbl(Text2.Text))
End Sub

Private Sub kakeru_Click()
    Call Chk
    Text3.Text = CStr(CDbl(Text1.Text) * CDbl(Text2.Text))
End Sub

Private Function Chk()
    If Text1.Text = "" Then
        MsgBox "数値を入力"
        Text1.SetFocus
        Exit Function
    ElseIf Text2.Text = "" Then
        MsgBox "数値を入力"
        Text2.SetFocus
        Exit Function
    End If
End Function

編集 削除
Blue  2008-03-03 13:09:08  No: 100378  IP: 192.*.*.*

正常な時、戻り値を返すようにして次の命令文を実行するかどうかという風にすればよいのでは?

>Private Function Chk()
     Chk = False
>    If Text1.Text = "" Then
>        MsgBox "数値を入力"
>        Text1.SetFocus
>        Exit Function
>    ElseIf Text2.Text = "" Then
>        MsgBox "数値を入力"
>        Text2.SetFocus
>        Exit Function
>    End If
    ' 正常
    Chk = True
>End Function


>Private Sub tasu_Click()
    If Chk Then
>    Text3.Text = CStr(CDbl(Text1.Text) + CDbl(Text2.Text))
    End If
>End Sub

編集 削除
Blue  2008-03-03 13:09:41  No: 100379  IP: 192.*.*.*

訂正
>    If Chk Then

    If Chk() Then
としないとだめかな。

編集 削除
1266  2008-03-03 13:30:17  No: 100380  IP: 192.*.*.*

Blueさん、早速ご教授いただき、ありがとうございます。
  うまくいきました!!
ですが、何故これで動くのかがまだ良く判っていないので、これから調べて自分のモノにしたいと思います。本当にありがとうございました。

編集 削除