プロが教えるわが家の防犯対策術!

Excel97でUserFormを表示して
消すのにUnloadでは消えてくれません

UserForm.show
処理1
処理2
unload UserForm

としているのですが、なぜかUserForm.showで
止まったまま制御が流れません

ちょっと教えていただけるとうれしいです

A 回答 (2件)

>止まったまま制御が流れません。



Excel97ですよね。
Excel97ではUserForm.show でUserFormは常にモーダルで開いています。同じアプリの他に制御を移す場合は、何か応答する必要があります。(Excel2000で変わった?)
シートのメニューから色々なダイアログボックスを開くと、OKやキャンセルを押してダイアログボックスを消さないと次の処理ができないのと同じです。

UserForm.show を Msgbox "メッセージ表示中",vbokonly

と変えてみると何が起きているか分かり易くないですか。入力待ちになってますよね。


色々な対応が可能でしょうが、UserForm_Activateで継続させる例です。(UserFormのコードウインドウ)

Private Sub UserForm_Activate()
  '処理1例
  Worksheets("Sheet1").Range("A1:A3") = "テスト設定1"
  '処理2例
  Worksheets("Sheet1").Range("A5:A8") = "テスト設定2"

  MsgBox "(例)フォームを消しますよ"
  Unload Me 'Me.Hide
  MsgBox "(例)フォームを消しました"
End Sub
    • good
    • 0

unload me


では駄目ですか?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!