すいません、すごい初心者です。
下記のような内容で、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
正常な時、戻り値を返すようにして次の命令文を実行するかどうかという風にすればよいのでは?
>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
訂正
> If Chk Then
は
If Chk() Then
としないとだめかな。
Blueさん、早速ご教授いただき、ありがとうございます。
うまくいきました!!
ですが、何故これで動くのかがまだ良く判っていないので、これから調べて自分のモノにしたいと思います。本当にありがとうございました。