こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

VBAで実行押すまでExcel非表示にしたい

VBAでユーザフォームを作成しました。
Excelを立ち上げるとExcelシートの前にユーザフォームが出る状態なのですが、
ユーザフォームの実行ボタンを押すまでは非表示にしたいのですが、どのような記述をしたらよいでしょうか?

マクロ的に実行ボタンを押すと結果が、Excel上に反映されるので、実行ボタンを押すまで非表示であれば大丈夫です

どうか教えてください。

投稿日時 - 2017-04-17 13:19:53

QNo.9318538

すぐに回答ほしいです

質問者が選んだベストアンサー

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

投稿日時 - 2017-04-21 10:09:18

お礼

すばらしい回答ありがとうございました。
大変助かりました。
謎が解決しました。感謝しております。

投稿日時 - 2017-04-26 08:59:17

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

ユーザーフォームについて
・何か(ブックやシート)のイベントがきっかけで
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
のようなものにすればどうだろう。実行すべきマクロの名前として登録するだけ

投稿日時 - 2017-04-17 15:23:53