[VBA] ユーザーフォームを非表示にする2通りの方法(Hide関数 Top Leftプロパティ)

Pocket

ここでは、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つ使っていたりすると、もしかするとディスプレイのサイズや使い方によっては、設定値次第ですが、ディスプレイのどれかで表示されてしまう可能性もあります。

こちらの方法は、おそらく使用しないほうが良いでしょう。誰も使わないとは思いますが。。。

 

スポンサーリンク


Pocket

Leave a Comment

Your email address will not be published. Required fields are marked *