Useform1のコマンドボタンをクリックすると
Private Sub CommandButton1_Click()
Call 処理
End Sub
というように、「処理」を呼び出し。これで終わるようにしていました。しかし、不具合が出てしまい、ステップインで見てみると「処理」からEndSubに行き、その後Useform2のコマンドボタンイベントのEnd Withへ
Private Sub CommandButton1_Click()
With Userform1
....
End With ←
・・・
End Sub
上のように矢印の部分へ飛んでしまいます。全く、独立な、コマンドイベントへ飛んで処理されているのです。それも、飛んだ箇所がEnd Withからです。こんなことがあるのでしょうか?
Private Sub CommandButton1_Click()
Call 処理
Exit Sub
End Sub
上のようにExit Subを追加してもやはりそこから飛んでしまいます。
なぜでしょうか?詳しい方アドバイスお願い致します。
No.3ベストアンサー
- 回答日時:
「何々のはず」論からいえば、Private Sub CommandButton1_Click()とどちらも同じでもUserForm1と
UserForm2のクリックイベントの飛び先は区別してくれているはず。この点で重大なバグがあるとのことも聞いたことがない。だから質問になるわけですが。
こういう場合、他(システムのバグ等)を疑いたくなるが、経験から、自分のミスだと極力考えを持っていって、原因究明に当たるべきと思います。
UserForm2に飛ぶ原因が何かないか
、実際に飛んでいるのか再確認されては
UserForm2の
Private Sub CommandButton1_Click()
With Userform1
....
End With ←
・・・
End Sub
のPrivate Sub CommandButton1_Click()の直下に
MsgBox "通過1"とでも入れて、実行してみては。
With Userform1の下にも
MsgBox "通過2"をいれてみるとか。
もう少し詳しいコードの紹介がないと、「ではないか」
論に終わってしまいそう。
経験から、プログラムって、一部だけ示して、問題箇所が見つかるほど、易しい作業と思いますか。えてして自分の注目点以外に原因がある場合が多い。だからこそ梃子摺る
ので、当たり前のことを言っているに過ぎないですが。
No.4
- 回答日時:
#3さんがおっしゃるとおり現状では「たられば」にしかなりませんね。
ちょっと確認できる状況ではないのですが、
一応一般論としては、当然
Call 処理
の内容を疑うことになりそうです。
この中にUseform2の内容を変更するような処理はしていませんか?
それとUseform2の更新後処理などにCommandButton1_Clickをイベントに割り当てしていれば、そのようなことになるかもしれません。
確認できないんで不明確なことですが、その辺を確認していただいて補足していただければもう少し詳しく回答できるかもしれません。
No.2
- 回答日時:
ボタンの名称が同じなので、VBが区別できなくて
両方の処理を実行しているようです。
Useform1とUseform2のボタン名を異なるものにしてしまうのでは
だめでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Visual Basic(VBA) 【追加】ファイルを閉じてダイアログで保存した時だけ処理の実行をする 3 2022/03/23 15:43
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Visual Basic(VBA) 前回ご教授いただいたコードに覚えたてのループ処理で品名りんごAから順に20回for nextでループ 7 2023/01/13 22:01
- Excel(エクセル) エクセルVBAでオブジェクトが必要です 2 2022/09/10 16:37
- Visual Basic(VBA) VBAで質問ですが、皆さんはどの様に導き出しているのでしょうか? 6 2022/05/03 21:53
- Visual Basic(VBA) ListBox1をClickしたときのイベント 5 2022/12/11 19:45
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2023/05/23 16:28
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBSの処理中一旦処理を止めて再...
-
ACCESS側からEXCELの書式を設定...
-
VBA kernel32 の意味
-
My Documentsディレクトリを
-
起動後直に実行するコードはど...
-
終了処理について
-
ASP.NETでのメッセージ画面を出...
-
InvalidateRectがうまくいかない
-
VBA:助けてください。呼び出し...
-
Timerのカウントダウンのしかた...
-
MFCのワーカースレッドとUIスレ...
-
Excel(VBA)シート上のコマンド...
-
MFCのメニューバーのイベント取得
-
【C#】 あるイベントから別イ...
-
Excel VBA で処理中断(DoEvents...
-
スロットゲームのプログラミング
-
緯度、経度の 10進法と 60進法...
-
Macターミナルで実行中のプログ...
-
バックグラウンドのプロセスの...
-
プロダクションコードとは?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBSの処理中一旦処理を止めて再...
-
メッセージボックスのボタン名変更
-
VBA kernel32 の意味
-
ACCESS側からEXCELの書式を設定...
-
VBSで応答不要のメッセージボッ...
-
エクセルVBAでクリップボード内...
-
Application.ScreenUpdating=Fa...
-
Excel VBA で処理中断(DoEvents...
-
VBA メッセージボックスを自動...
-
【C#】 あるイベントから別イ...
-
VBA、UserFormを前面に出力して...
-
ASP.NETでのメッセージ画面を出...
-
Excel VBA 自動的に閉じるMsgBox
-
スロットゲームのプログラミング
-
キーボード入力、マウス操作を...
-
<input type="file">タグで「キ...
-
Excelのワークシートに行を挿入...
-
ボタンが押された事を検知する...
-
VB6 コマンドボタン クリック...
-
VCでウエイトをミリ秒でかけ...
おすすめ情報