【ThisWorkbook】 Option Explicit Private Sub Workbook_Open() UserForm1.Show End Sub 【UserForm1】 Option Explicit Private Sub CommandButton1_Click() 'UserForm1を隠してからUserForm2を表示します。逆にするとUserForm2から '戻るときに失敗します。 UserForm1.Hide UserForm2.Show End Sub Private Sub UserForm_Activate() 'UserForm1が隠されるのを確認するため位置をずらしておきます。 Me.Top = 0 Me.Left = 0 End Sub 【UserForm2】 Option Explicit Dim BtnClick As Boolean 'コマンドボタンが押されたらTrueになります。 Private Sub CommandButton1_Click() BtnClick = True 'UserForm2を閉じてUserForm1を表示します。この順番も変えると不具合が '発生します。 Unload Me UserForm1.Show End Sub Private Sub UserForm_Initialize() BtnClick = False End Sub Private Sub UserForm_Terminate() '閉じるボタンでUserForm2を閉じた場合にUserForm1を表示します。 'この場合次回UserForm2が開かれた後、正常な動きをしなくなります。 'Excel2000:コマンドボタン、閉じるボタンを受け付けなくなります。 ' 強制終了またはVBEでFormを編集状態にしてください。 'Excel97 :閉じるボタンをクリックするとすべてのフォームを閉じます。 If BtnClick = False Then UserForm1.Show End Sub