エクセル、アクセスでVBAを自作している者です。コーディング暦5年以上で、フォーム画面も組めるようになりました。
いまだに理解が進まないのがイベントですが、その中で質問があります。
かなり時間のかかる処理(例えば30分とか1時間とか)を行う際に、例えば100件処理ごとに「今~件処理しました。」というようなメッセージをフォーム上に表示して、経過を知らせるとともにPCが固まっていないことを確認できるようにしています。(Application.Echoを通常はFalseにして、100件ごとにEcho=Trueに直してからRepaintメソッドで書いて、再びEcho=Falseに戻しています)
しかし、これもずっとアクセスを表示したままの場合にしか動きません。処理中に別の画面(エクセルとかエクスプローラーとか)を表示して、アクセスに戻ってくると、アクセスはVB実行中で画面の再描画はしてもらえず、処理がすべて終わるまでは白い画面(何も表示されない画面)などが表示されたままになってしまいます。フォームのActivateイベントにも仕込んでみましたが、アクセスに戻っただけではActivateイベントは発生しないようです。
Applicationオブジェクトや、CurrentProjectオブジェクトにはイベントがないようで、アクセスがアクティブになった場合に、再描画させることができるのかどうか、教えていただければ幸いです。
No.1ベストアンサー
- 回答日時:
あまり自信がないのですが、
REPAINTの前にDO.EVENTをかましたらうまくいきませんか。
感覚として、一度OSに制御を移して再描画になるのでないかと思うのですが。
間違ってたらごめんなさい
ありがとうございます。
DoEventsの機能はヘルプを読んでみたものの、まだ完全に理解できていません。ただ、アドバイスの通りにRepaintの前にDoEventsを置いてみて、うまくいきました。下記のようなコードで動いています。
Private Sub Form_Activate()
DoEvents
Me.Repaint
Exit Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
それもChatGPT!?と驚いた使用方法を教えてください
仕事やプライベートでも利用が浸透してきたChatGPTですが、こんなときに使うの!!?とびっくりしたり、これは画期的な有効活用だ!とうなった事例があれば教えてください!
-
【大喜利】【投稿~1/9】 忍者がやってるYouTubeが炎上してしまった理由
【お題】・忍者がやってるYouTubeが炎上してしまった理由
-
あなたの「プチ贅沢」はなんですか?
お仕事や勉強などを頑張った自分へのご褒美としてやっている「プチ贅沢」があったら教えてください。
-
AIツールの活用方法を教えて
みなさんは普段どのような場面でAIツール(ChatGPTなど)を活用していますか?
-
【大喜利】【投稿~1/20】 追い込まれた犯人が咄嗟に言った一言とは?
【お題】追い込まれた犯人が咄嗟に言った一言とは?
-
Access サブフォームでの選択行の取得
その他(データベース)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・【大喜利】【投稿~1/31】『寿司』がテーマの本のタイトル
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・【大喜利】【投稿~1/20】 追い込まれた犯人が咄嗟に言った一言とは?
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・【大喜利】【投稿~1/9】 忍者がやってるYouTubeが炎上してしまった理由
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
JAVAでの背景画像表示
-
VB.NET フォーム上に描いたグ...
-
C# リストビューの特定のセルの...
-
「VC++2008」の「Invalidate」...
-
SwingとEDT(イベントディスパッ...
-
Java Script 色を塗れるプログ...
-
度々すいません、Javaについて...
-
C# DataGridView のCellPaintin...
-
GDI+で描画した画像を消去する...
-
「タイプ初期化子が例外をスロ...
-
エクセルVBAで、条件に一致する...
-
private static という変数の修飾
-
エクセルVBA 画像を貼り付ける...
-
変数名の付け方
-
tryの終了
-
String.containsの反対機能はあ...
-
VB.NETでMSComm が追加できず?
-
インスタンス参照でアクセスで...
-
VBA 同じ名前のオブジェクトを...
-
オブジェクト参照がオブジェク...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VB.NETのSendMessageを教えてく...
-
VB.NET フォーム上に描いたグ...
-
Canvas等の図形を移動する時,直...
-
Androidで画像の中で指定した範...
-
JAVAでの背景画像表示
-
C# DataGridView のCellPaintin...
-
画面のちらつきの原因が知りた...
-
Java 15パズルを作ったのですが...
-
SwingとEDT(イベントディスパッ...
-
重なった要素上でのイベントで...
-
Java Script 色を塗れるプログ...
-
GDI+で描画した画像を消去する...
-
ドラッグして矩形を描くには
-
Javaで文字の角度を変えて表示...
-
音声再生/SourceDataLineの遅延
-
最接近点を持つ線を特定
-
BMP画像を画像処理して連続に表...
-
canvasで表示されてる画像を1...
-
C#のGraphicsクラスについてです。
-
Java、jPanelに描画する
おすすめ情報