|
| |
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)
|
|