Excel VBAに効く Vitamin E
UserFormのTerminateイベントでShowは使うな
UserFormのTerminateイベントでShowを使うと正常な動きをしなくなります。(01/10/19MS確認)
【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
Source表示(上記TEXTファイル)
hide_show.xlsのダウンロード(hide_show.lzh 10k)

(UPD:01/10/24)