UserForm1とUserForm2を切り替える方法 | |
---|---|
[194790] UserForm1とUserForm2を切り替える方法- ■親トピック/記事引用/メール受信=OFF■ □投稿者/ ルコト -(2022/03/22(16:04)) □U R L/ UserForm1は一覧になっており、 UserForm2は、一覧からクリックした詳細画面としています。 UserForm1のリストをダブルクリックしたら UuserForm2にリストの内容を表示。 UserForm2を閉じるか、「保存」ボタンを押すと UserForm1の画面に戻る というような動作をさせようと思っています。 UserForm1のリストクリック時には、 Unload Me UserForm2.show UserForm2の「保存」またはQueryCloseに Unload Me UserForm1.show と入力しました。 UserForm1→UserForm2 は問題なく開きます。 UserForm2を閉じようとすると、UserForm2が背面に残り続けます。 UserForm2を最初に起動し、画面を閉じようとしても 同じようにUserfrom2が背面に残るのです。 ShowとHideにしても同じでした。 フォーム操作中にExcelを操作されたくないため、モードレス?にはしてません。 QueryCloseで動かしたあとに背面に残ったUserform2が上手く消えないのですが、 どのようにしたら消せるのでしょうか? |
[194796] Re[1]: UserForm1とUserForm2を切り替える方法- ■記事引用/メール受信=OFF■ □投稿者/ 半平太 -(2022/03/23(11:30)) □U R L/ >フォーム操作中にExcelを操作されたくないため、モードレス?にはしてません。 と言うことは、最初のUserform1のダブルクリックのイベントプロシージャから 一歩も抜け出てないってことですよね? Userformの内部がどんな仕掛けなっているか分からないですが、 何か不具合が出てもおかしくない気がします。 こんなので、とにかくイベントプロシージャを抜けたらどうですか? '---標準モジュール--- Sub UFreopen1() UserForm1.Show End Sub Sub UFreopen2() UserForm2.Show End Sub ---Userform1モジュール--- Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean) Me.Hide Application.OnTime Now, "UFreopen2" End Sub ---Userform2モジュール--- Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) Application.OnTime Now, "UFreopen1" End Sub |
[194798] Re[2]: UserForm1とUserForm2を切り替える方法- ■ / 記事引用/メール受信=OFF■ □投稿者/ ルコト -(2022/03/23(13:22)) □U R L/ 半平太さま 回答ありがとうございます。 Unloadを使っていたのが問題かもしれません。 以下にしたところ再現しなくなりました。たぶん。 UserForm1 Private Sub CommandButton1_Click() Me.Hide UserForm2.Show End Sub UserForm2 Private Sub CommandButton1_Click() Me.Hide UserForm1.Show End Sub Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) Me.Hide UserForm1.Show End Sub 動作確認中です。 この記事にはVBAのコードが含まれています。 緑の太文字→注釈 茶色の太文字→条件分岐 赤の太文字→ループ 青の太文字→その他 |
[194799] Re[3]: UserForm1とUserForm2を切り替える方法- ■記事引用/メール受信=OFF■ □投稿者/ ルコト -(2022/03/23(13:34)) □U R L/ UserForm1を開いてF5で起動 ※とりあえず標準モジュールから起動しないで動作確認 UserForm1が起動する→CommandButton1をクリック → UserForm2が起動 UserForm2の右上の×をクリック→UserForm1が起動 UserForm1のCommandButton1をクリック→UserForm2が起動 UserForm2の右上の×が反応しない |
[194801] Re[4]: UserForm1とUserForm2を切り替える方法- ■記事引用/メール受信=OFF■ □投稿者/ ax -(2022/03/28(09:55)) □U R L/ 状況としては QueryClose内でUserForm1.Showしているため UserForm1を閉じるまでコードの実行が先に進まず QueryCloseが実行中のままになっているから。 |
[194803] Re[5]: UserForm1とUserForm2を切り替える方法- ■ / 記事引用/メール受信=OFF■ □投稿者/ ルコト -(2022/03/31(08:25)) □U R L/ ax様 説明ありがとうございます! 解決しました! |
このトピックに書きこむ |
---|