作成日 2004/12/12
最終更新日 2008/5/5

Repaintメソッドが効かない

 このバグはMicrosoftのホームページでは紹介されていないみたいです。(2004/12/12現在)
もしかしたら、だるまの勘違いかもしれない。

1.Repaintメソッドとは
2.バグの詳細
3.回避策(2008/5/5追加)

1.Repaintメソッドとは

 RepaintメソッドはFrame、Page、UserFormクラスのインスタンスメソッドだよ。
 で、使うと対象オブジェクトを再描画する。
 LabelやFrameを組み合わせてプログレスバーを自作するときに使われている。
このページのトップへ

2.バグの詳細

 やればわかる。再描画されないから。
 下に、ソースと実行結果を示しておく。
(実行環境:
 OS:Mac OS X ver.10.3.6
 Excel:Microsoft Excel X for Mac Service Release 1)
repaint_bug.jpg
Image1の横幅とステータスバーの数値が一致するはずなんだけど、Image1の横幅が12 (初期値)のままになっている。

このページのトップへ

3.回避策(2008/5/5追加)

 Repaintメソッドを呼んだ後、DoEventsメソッドを呼び出せば画面が更新されるのを確認しました。
 (UserForm1.Repaintの後で、DoEventsを呼び出すとImage1の横幅が更新されることを確認しました。)
 ただし、処理速度が遅くなる・・・。

Prev Up Next  Top
このページのトップへ

このページの利用によって発生した、いかなる損害について、このホームページの作成者は責任を負いません。
このページの間違いや嘘を見つけた方、このページに書いて欲しい情報がある方はメールをお願いします。

Microsoft 、Windows 、Visual Basic および Excel は米国Microsoft Corporationの米国およびその他の国における登録商標または商標です。
ここではExcel® をエクセル、Visual Basic® for Applications をVBAと表記する場合があります。
Mac 、Mac OS 、Mac OS X は米国Apple Computer,Inc.の登録商標または商標です。
その他、社名および商品名、システム名称などは、一般に各社の商標または登録商標です。

このホームページの作成者はこれらの会社とはいっさい関係がありません。