こんにちは
VBAの初心者なんです。
VBAのデータ検索処理、超時間がかかりそうです。ですが、検索ボタン押下時に、処理待ち画面を表示させ、検索が終ったら、処理待ち画面を
閉じる仕様になりました
下記のように、なかなかうまくいけませんでした。
Private Sub CommandButton1_Click()
'userform6は処置待ちフォーム
userform6.show
'検索処理
検索処理()
userform6.hide
end sub
ご存知の方がいらっしゃいましたら、ぜひ、お力を貸していただきたい......
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
isCompleted = False
userform6.show '処理待ち画面の表示
検索処理()
Do
DoEvents
Loop Until isCompleted
userform6.hide '処理待ち画面隠す
sub 検索処理()
...
...
isCompleted=true
end sub
=======================================================================================
DoEvents関数
>発生したイベントがオペレーティング システムによって処理されるように、
>プログラムで占有していた制御をオペレーティング システムに渡すフロー制御関数です。
=======================================================================================
検索処理()実行後に待機しなきゃーフォームを隠すコードが実行される不具合と推察。
で、検索処理()実行後に待機すればと思った次第です。
で、待機の条件を isCompletedにしてけば、検索処理()の最終行でこれを真にすれば抜けると。
が、が、この場合、DoEvents関数をDo-Loopに書いておかないと検索処理()のプロセスも停止。
Do-Loopの処理が優先されるからです。
還暦まじかで実践から遠ざかって数年。
外してなきゃーいいのですが・・・。
いろいろ、ありがとうございました。参考になって、解決しました
Private Sub CommandButton1_Click()
isCompleted = False
Me.Hide
UserForm3.Show vbModeless
Do
DoEvents
検索処理
Loop Until isCompleted
Unload UserForm3
MsgBox "終了"
Me.Show
End Sub
sub 検索処理()
...
...
isCompleted=true
end sub
そういう感じでした、ありがとうございました
No.1
- 回答日時:
Option Explicit
Dim isCompleted As Boolean
Private Sub CommandButton1_Click()
isCompleted = False
Do
DoEvents
Loop Until isCompleted
MsgBox "終了"
End Sub
Private Sub CommandButton2_Click()
isCompleted = True
End Sub
エクセルは操作したことがない門外漢ですが・・・。
CommandButton1が押されてもメッセージは表示されません。
CommandButton1が押されるまで待機します。
質問の件では、検索処理開始前に isCompleted を偽にします。
質問の件では、検索処理終了と同時に isCompleted を真にします。
そうするとD0-Loopから抜けます。
この抜けた後に処理待ち画面を隠します。
重要なことは、待機中にプロセスを解放することです。
でないと、検索処理がとまります。
この回答への補足
Husky2007さん
こんにちは
下記のようになかなかうまくいけません
Dim isCompleted As Boolean
Private Sub CommandButton1_Click()
...
isCompleted = False
Do
userform6.show '処理待ち画面の表示
Loop Until isCompleted
検索処理()
userform6.hide '処理待ち画面隠す
...
End Sub
sub 検索処理()
...
isCompleted=true
...
end sub
ご指摘をお願いします
よろしくお願いいたします
ご回答、ありがとうございました
不明点がありまして、
↓
重要なことは、待機中にプロセスを解放することです。
でないと、検索処理がとまります。
↑
プロセスを開放するってはなんですか。私は今の状態は仰っている状態になりました。検索処理が止まっている状態でした
VBAの門外漢のものですが、教えていただけませんか
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Visual Basic(VBA) 検索のユーザーフォームの表示について 1 2023/03/27 23:31
- Visual Basic(VBA) Excel VBAのリストボックスの値を他のフォームに反映させる方法を教えてください。 2 2023/07/14 14:06
- Visual Basic(VBA) ユーザーフォームの表示を追加したい 2 2023/03/26 23:18
- Visual Basic(VBA) VBAの繰り返し処理表記と複数の処置条件について 1 2023/01/23 20:08
- Excel(エクセル) VBAについて 3 2022/06/19 18:19
- Excel(エクセル) エクセル VBA実行中のApplication.ScreenUpdatingについて 3 2023/07/13 21:06
- Excel(エクセル) 【Excel】指定のセル内容を基に別シートのセルを検索して選択する【VBA】 1 2022/06/16 16:16
- Excel(エクセル) エクセルのvlookupについて質問です 3 2023/01/05 15:15
- Excel(エクセル) シートを配列にいれることはできますか? 3 2023/06/04 19:06
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
ACCESSでVBAから選択クエリの抽出条件を指定したい
Access(アクセス)
-
AccessVBAで作成したExcelファイルを削除する方法は?
Visual Basic(VBA)
-
アクセスのフォーム上でのカウントについて
Access(アクセス)
-
-
4
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
5
マクロで、次のコードへ行く前に時間をおくにはどうしたらいいのでしょうか?
その他(Microsoft Office)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「ご処理進めて頂きますようお...
-
VBA SaveChanges 上書きされない
-
VBAでループ内で使う変数名を可...
-
switch の範囲指定
-
メルカリのメルカードで買い物...
-
エクセルで、日付を入力すると...
-
VBの質問#if 0 then ってどう...
-
DoEventsがやはり分からない
-
findは動くがfindnextがマクロ...
-
EXCEL VBA マクロ 実行する度に...
-
リョウ・・・量?料?
-
【Excel】特定の文字を含むセル...
-
Excel VBAにて2つの処理を同時...
-
Select Case文でこのようなこと...
-
VBAでセルに値が入力されるまで...
-
月度は何て読みますか?
-
Do~Loopした回数をカウントしたい
-
iD
-
FFTの結果ついて
-
Loadイベント中にほかのイベン...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「ご処理進めて頂きますようお...
-
メルカリのメルカードで買い物...
-
エクセルで、日付を入力すると...
-
VBAでループ内で使う変数名を可...
-
【Excel】特定の文字を含むセル...
-
EXCEL VBA マクロ 実行する度に...
-
DoEventsがやはり分からない
-
UMLでの例外処理
-
月度は何て読みますか?
-
switch の範囲指定
-
VBの質問#if 0 then ってどう...
-
セルの値が0はクリアするマクロ
-
VB.NET Excelを読み込んでDataT...
-
Do~Loopした回数をカウントしたい
-
Loadイベント中にほかのイベン...
-
Select Case文でこのようなこと...
-
findは動くがfindnextがマクロ...
-
緊急です。 知り合いから50kgの...
-
リョウ・・・量?料?
-
理不尽、行き場のないイライラ...
おすすめ情報