ユーザフォームを再表示する[VBA]

2022-06-13

個人的にどうしてもユーザフォームをShowしたタイミングでInitializeを走らせたかったので。

今時VBAのユーザフォームの需要があるのかは謎。

Initializeも含めてユーザフォームを再表示するには

一旦ユーザフォームを解放して再度表示すればいい。
こんな感じ。

UserForm1.Hide
Set UserForm1 = Nothing
UserForm1.Show

もしくはボタンが押されたときにInitializeを直接呼び出すのであればわりと簡単に実装できそう。

Initializeが必要ない場合は

色々設定してからRepaintをというメソッドを使用して再描画する必要がある。
Repaintでなんとかなるならこちらを使った方が速度的に早そうではある。

UserForm1.Repaint