ExcelVBA フォーム再描画の代替手段

Excel のユーザーフォームは、Accessとは異なり、Repaint
メソッドが使えません。そのため、フォームを再描画又は
再読み込み(いわゆるリロード)したいときに困ります。

そこで、代替手段を考えました。
再読み込みするわけですから、Initializeイベントが発生し
たことにすればいいわけですね。なので、通常、Initialize
イベントに記述するコードを、あえて別プロシージャを作
って記述します。仮に、その別プロシージャ名を「macro1」
として、Initializeイベントから、macro1をCallします。
そして、Repaintの代替手段は、ユーザーフォームのClick
イベントで、macro1をCallすれば、Repaintと同様の結果を
得ることができます。
もし仮に、不必要な場面でフォームをクリックしてしまっ
たとしても、普段、Initializeイベントに書いている処理が
走るだけですから、何の問題もないと思います。

この記事が気に入ったらサポートをしてみませんか?