- ベストアンサー
VBAで実行押すまでExcel非表示にしたい
VBAでユーザフォームを作成しました。 Excelを立ち上げるとExcelシートの前にユーザフォームが出る状態なのですが、 ユーザフォームの実行ボタンを押すまでは非表示にしたいのですが、どのような記述をしたらよいでしょうか? マクロ的に実行ボタンを押すと結果が、Excel上に反映されるので、実行ボタンを押すまで非表示であれば大丈夫です どうか教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
UserForm_Initializeイベントを使いユーザーフォームが 開くまえにExcelを非表示にします。 ユーザーフォームモジュールに記述 Private Sub UserForm_Initialize() Application.Visible = False End Sub >実行ボタンを押すまで非表示であれば大丈夫です 実行ボタンを押すと表示 Private Sub CommandButton2_Click() Application.Visible = True End Sub ユーザーフォームを終了した時、Exelを表示するには Private Sub UserForm_Terminate() Application.Visible = True End Sub
その他の回答 (1)
- imogasi
- ベストアンサー率27% (4737/17069)
ユーザーフォームについて ・何か(ブックやシート)のイベントがきっかけで UserForm1.Show に当たるものが、が実行されている。そういうコード行がある、か、 ・またはその初期イベントの中でUserForm1.Show が実行されている。 (その1行がある)と思われる。 その箇所を見つけて、その行は削除し、何かのイベント(クリック)を作って、 そこで UserForm1.Show を実行する。 又はUserformのLoadだけの実行で止めて、必要な都度 UserForm1.Show を実行する。 UserFormはLOAD段階とShow段階と分かれている。 またSHOWとHideは切り替えられる。メモリでは働くようになっていて切り替える。 ーー Load-Unload Show-Hide についてWEB記事を照会のこと。 >ユーザフォームの実行ボタンを押すまでは非表示にしたいのですが これは論理矛盾ではないか。UserFormが見えてないのに、その上のボタンの押しようがない。 Userformではなくて、シートに図形でも張り付けて、そこにマクロの登録をして そのマクロは Sub test01() UserForm1.Show vbModeless End Sub のようなものにすればどうだろう。実行すべきマクロの名前として登録するだけ
お礼
すばらしい回答ありがとうございました。 大変助かりました。 謎が解決しました。感謝しております。