皆さん:こんにちは!
Private Sub cmdA_Click()
cmdB_Click
Form1.Show
End Sub
の処理をしています。
cmdB_Clickの処理でエラーが出た時にForm1.Showの処理を中止したいです.
cmdB_Click中のエラーチェックのところでflag = 0とかに設定し,
Private Sub cmdA_Click()
cmdB_Click
if flag <> 0 then
Form1.Show
end if
End Sub
にすればできますが他にもっと変数を使わない簡単な方法ってありますか?
よろしくお願いします。
On ErrorとかResumeとかを適切に使えばよいと思いますが。
YuOさん:こんにちは!
すみません。説明下手でした。
本来はエラーチェックではなく,MsgBoxで警告メッセージを出した時(cmdB_Click)の処理をしたかったんです。
たぶんフラグを使う方法しかないようですね。
cmdB_Clickの内容をごっそり何らかの関数に移し替えて,cmdB_Clickでも,cmdA_Clickでもその関数を呼ぶようにします。
で,cmdA_Clickでは戻り値をチェックするようにすれば,変数は不要です。
グローバル変数を使う前に,関数の戻り値にできないか考えてみた方がよいでしょう。
YuOさん:こんにちは!
そうですね。それも一つのいいアイディアですね。
でも,cmdB_Clickの処理が大きい場合,それをまた関数に移し替えるのも
大変じゃないかと思います。
cmdB_Clickの処理が単純の場合はいけると思います。
いろいろアドバイスありがとうございました!
今後ともよろしくお願いします。
解決となっていますが……。
> でも,cmdB_Clickの処理が大きい場合,それをまた関数に移し替えるのも
> 大変じゃないかと思います。
全処理をcmdB_Clickから関数に移すのです。
単純にCut & Pasteするだけですよ。
ツイート | ![]() |