
お世話になります。
ファイルからデータを取り出し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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「ご処理進めて頂きますようお...
-
エクセルで、日付を入力すると...
-
UMLでの例外処理
-
VBAでCOPYを繰り返すと、処理が...
-
VBAでループ内で使う変数名を可...
-
switch の範囲指定
-
月度は何て読みますか?
-
EXCEL VBA マクロ 実行する度に...
-
ボタンクリックイベント 重複...
-
【Excel】特定の文字を含むセル...
-
メルカリのメルカードで買い物...
-
EXCEL2003 VBAで2つのDBに接続...
-
findは動くがfindnextがマクロ...
-
wshで起動したコマンドををタイ...
-
VBの質問#if 0 then ってどう...
-
vba 空のデータをSplitする時の...
-
Do Until rs1.EOF であるレコ...
-
Excel VBAにて2つの処理を同時...
-
銀行の窓口処理の件で知ってる...
-
Excel2013VBAで100%以上の処理...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「ご処理進めて頂きますようお...
-
エクセルで、日付を入力すると...
-
【Excel】特定の文字を含むセル...
-
switch の範囲指定
-
VBAでループ内で使う変数名を可...
-
EXCEL VBA マクロ 実行する度に...
-
UMLでの例外処理
-
銀行の窓口処理の件で知ってる...
-
VBAでCOPYを繰り返すと、処理が...
-
月度は何て読みますか?
-
インタラクティブの反対語は?
-
VB.NET DataGridViewでIsNewRo...
-
DoEventsがやはり分からない
-
VBの質問#if 0 then ってどう...
-
お家デートをしててハグを長い...
-
セックスレスの既婚女性は自慰...
-
VB.NET Excelを読み込んでDataT...
-
リョウ・・・量?料?
-
メルカリのメルカードで買い物...
-
Loadイベント中にほかのイベン...
おすすめ情報