ここでは、VBA におけるユーザーフォームを非表示にする方法を紹介しています。なお、あまり役に立たないかもしれません。ご了承ください。
スポンサーリンク
Hide メソッドで非表示にする
VBA でユーザーフォームを非表示にするには Hide メソッドを使用します。Windows フォームアプリケーションから入った人であれば多少違和感があるかもしれないですね。
' ユーザーフォームをモーダレスでオープンする UserForm1.Show (vbModeless) ’ ユーザーフォームを非表示にする UserForm1.Hide ' 次のように Visible プロパティを使用するとコンパイルエラーとなる 'UserForm1.Visible = False
コメントにもありますが、Visible プロパティを使用した場合はコンパイルエラーとなります。個人的には「Why?」って思いました。
コンパイルエラー:
関数またはインターフェースが予約されているか、または Visual Basic でサポートされていないオートメーションタイプが関数で使用されています。
意味不明です (-_-;)
画面からはじき出して非表示のように振舞う方法
次は、やや荒っぽい方法ですが、ユーザーフォームの表示位置を画面外にはじき出してしまう方法です。
UserForm1.Show (vbModeless) ' ユーザーフォームの表示位置を画面からはじきだす UserForm1.Top = -1400 UserForm1.Left = -1400
上記の設定(Top と Left がともにマイナス値)の場合は、ユーザーフォーム(灰色の四角)は画面の外にあることになります。
なお、この方法はディスプレイを2つ使っていたりすると、もしかするとディスプレイのサイズや使い方によっては、設定値次第ですが、ディスプレイのどれかで表示されてしまう可能性もあります。
こちらの方法は、おそらく使用しないほうが良いでしょう。誰も使わないとは思いますが。。。