- 締切済み
VBAユーザーフォームの色が反映しない
またぞろVBAよろしくお願いします。 今回はユーザーフォームを作りマクロを走らせている間『処理中』の表示をさせるようにしています。 そこでユーザーフォームのBackColorをパレットより選んで黄色とかにしているのですが、いざマクロ実行してみると色はグレー色のままだし、ラベルも反映していないのでコメントも出ないフォームが画面上に出ます。 でも、Captionでのコメントは反映して切り替わっています、フォーム自体の大きさも変更すると反映しています。 同じエクセルブックにもう一つユーザーフォームはつけていますがそちらはバッチリとデザインしたフォームで表示されます。 このフォームとの相違点はマクロ実行させる時に表示させているシートが違うぐらいなのですが、そういたっものも関係あるんですかね? 何処を修正したらよいのか、何故今回は反映してくれないのかホトホト困っておりますのでなにかアドバイスあればお願いします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- imogasi
- ベストアンサー率27% (4737/17069)
Sub test01() UserForm1.BackColor = vbYellow 'UserForm1.BackColor = vbGreen UserForm1.Show End Sub のようなことを実行捨ても色が設定されませんか。 BackColorをプロパティ設定でも Sub test02() UserForm1.Show End Sub は色がつきました。 ーーー 多数回の繰り返しのループに入る前にUserForm1.Show を入れてますか。 ーー #1でご回答のケースの可能性が大。
- myRange
- ベストアンサー率71% (339/472)
>ラベルも反映していないのでコメントも出ない 恐らく表示が間に合わないのでしょう。 そういう場合はそのコメントを出すコードの直後に、DoEvents関数を入れてやります。 実際のコードが提示されてないのでなんですが、例えば以下のように。 '--------------------------------- For i= 1 to Last Label2.Caption = i & " / " & Last & " を処理中" DoEvents '●これを追加 ****いろんな処理***** Next i '--------------------------------- 外しましたらご容赦! 以上です。
補足
VBAを追加しないと表示されないんですかねぇ…。 Sub test02() UserForm1.Show End Sub だけでUserForm1が表示されるはずなんですが。 もう一つのUserForm2がうまく表示されているだけに残念です。