
お世話になります。
ファイルからデータを取り出し1行1行処理を行っており、
時間がかかりますので、1行毎にProgressBarをカウントアップしています。
そして、例えば処理中にメールソフトのOutLookでメールの返信でもしようとすると、ロックがかかっているのか、返信ボタンすら押せません。
処理が終わると通常通り使用できます。
どなたか、処理中でプログレスバーのゲージが進んでいる最中でも、OutLookが使用できる方法を教えて頂けないでしょうか。
<処理中のプログレスバーの呼ぶ方法(カウントアップ)>
frmProgress.NextStep
frmProgress.Show vbModeless, Me
<プログレスバー内でのカウントアップ>
Public Sub NextStep()
On Error Resume Next
' 画面を更新する
m_lCounter = m_lCounter + 1
ProgressBar.Value = m_lCounter
lblCounter.Caption = CStr(m_lCounter)
lblCounter.Refresh
DoEvents
'画面を更新する
lblCounterMax = "/" + CStr(m_lngShoriCounterMax) + "件目処理中"
ProgressBar.Max = m_lngShoriCounterMax
On Error GoTo 0
End Sub
<環境>
VB(SP6)
No.1ベストアンサー
- 回答日時:
なんの処理中か分かりませんが
その処理ソフトとOutlookは何か連携でもしているんですか?
連携しているなら、あきらめたほうが良いと思います。
連携していないなら、タスクマネージャでCPU占有率を確認してみては?
その上で、処理ソフト側のCPU処理の優先順位を落とすとか
Outlook側の処理を優先するようにするか
PCの環境を増強しより高速な物に交換するしかないかと・・・
この回答への補足
回答して頂きまして、ありがとうございます。
特にOutlookとは連携しておりません。
そしてご指摘の通り、CPUが100%になっておりましたので、
API(SetPriorityClass)を使用して、このアプリの優先度を「低い」に
設定したのですが、やはり返信ボタンを押しても、返信画面が表示されませんでした。
これはシングルコアのCPUでは、しょうがないことなんでしょうか。
難しいですね。
No.2
- 回答日時:
動作が重くなる原因はプログレスバーに関する処理をしているからなのでしょうか?
その処理をはずすと動作が軽くなりますか?
>>ファイルからデータを取り出し1行1行処理を行っており、時間がかかりますので
という言葉から、数百数千の処理をしていると推測します
プログレスバーが問題なら
captionのカウンタを1行ごとに
プログレスバーのカウントを10行ごとに更新するよう
にしてはどうでしょうか?
また、NextStep()関数内で
ProgressBar.Max = m_lngShoriCounterMax
を毎回実行していますが、必要あるのでしょうか?
実行途中で最大値?が変化するのならば必要かと思いますが
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Visual Basic(VBA) 【追加】ファイルを閉じてダイアログで保存した時だけ処理の実行をする 3 2022/03/23 15:43
- Visual Basic(VBA) VBA リボンののリカバリーでオーバーフローエラーになります 2 2023/07/04 19:07
- Visual Basic(VBA) 【VBAエラー】Nextに対するForがありません 対策について 5 2022/11/21 21:26
- その他(Microsoft Office) VBA メール送信済で実行されるはずが、実行されない時があります。 2 2023/02/02 14:05
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
- Visual Basic(VBA) vba Sleep関数について教えてください 1 2023/01/18 10:18
- Visual Basic(VBA) 標準モジュール Public mOnTime As Date Sub sample() '実行プロシ 1 2023/02/22 15:44
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「ご処理進めて頂きますようお...
-
エクセルで、日付を入力すると...
-
switch の範囲指定
-
VB.NET Excelを読み込んでDataT...
-
ボタンクリックイベント 重複...
-
EXCEL VBA マクロ 実行する度に...
-
VBAでループ内で使う変数名を可...
-
月度は何て読みますか?
-
【Excel】特定の文字を含むセル...
-
VBAでCOPYを繰り返すと、処理が...
-
UMLでの例外処理
-
Loadイベント中にほかのイベン...
-
取り消し線が入った文字を削除...
-
DoEventsがやはり分からない
-
パソコンについて GPUをCPUの代...
-
お家デートをしててハグを長い...
-
VBA 特定の文字が入力されたセ...
-
リョウ・・・量?料?
-
findは動くがfindnextがマクロ...
-
セックスレスの既婚女性は自慰...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「ご処理進めて頂きますようお...
-
エクセルで、日付を入力すると...
-
VBAでループ内で使う変数名を可...
-
【Excel】特定の文字を含むセル...
-
switch の範囲指定
-
EXCEL VBA マクロ 実行する度に...
-
UMLでの例外処理
-
DoEventsがやはり分からない
-
月度は何て読みますか?
-
お家デートをしててハグを長い...
-
VB.NET Excelを読み込んでDataT...
-
VBの質問#if 0 then ってどう...
-
Do~Loopした回数をカウントしたい
-
VBAでCOPYを繰り返すと、処理が...
-
メルカリのメルカードで買い物...
-
インタラクティブの反対語は?
-
Loadイベント中にほかのイベン...
-
リョウ・・・量?料?
-
vba 空のデータをSplitする時の...
-
findは動くがfindnextがマクロ...
おすすめ情報