
ExcelVBAでUserFormを使用した4画面ばかりのツールを作成中です。
質問ですが、あるコマンドボタンを押下した時に、既存のExcelファイルを複数開き、集計などを行い、結果をCSVファイルに出力するという処理を行っています。
処理には、10分位の時間を要するので、その間は、UserFormに「現在処理中のファイル名、処理が終了したファイル名」などの進捗をラベルに表示したいのですが、実際に実行してみると、Excelファイルを開いた時点で、制御がExcelファイル側に入ってしまい、UserFormが真っ白に表示されてしまいます。
常に、「UserForm」をアクティブにし、目的の進捗状況ラベルに表示しながら、集計処理を実行することはできるのでしょうか?
どなたかご存知の方、教えてください!!
No.1ベストアンサー
- 回答日時:
こんばんは。
>Excelファイルを開いた時点で、制御がExcelファイル側に入ってしまい、UserFormが真っ白に表示されてしまいます。
やってみましたが、再現性がないですね。ただ現象はわかります。大きな処理のものでないと出ないようです。たぶん、制御がExcelのブック側に入るのではなくて、Userform の画面の戻りができなくなって、Excelのブック側に取られているのではないでしょうか?
UserForm を開いていて、ふたたびアクティブにするのは、
Workbooks.Open (FileName)
myTitle = Me.Caption
AppActivate (myTitle)
なんていうことをしますが、なんとなく、こういうことではないような気がしています。もう少し、全体的な処理なんだろうなって思います。ブック自体を Visible = False にしてしまい、処理が終わったら、戻るようなほうが、なんとなく楽なような気がします。
あんまり姑息なことをすると、ハングしそうな気がします。
それから、進捗状況は、
http://oshiete1.goo.ne.jp/kotaeru.php3?q=405615
#3
出典: 『かんたんプログラミング Excel VBA コントロール・関数編』大村あつし著 (技術評論社)第二章の中の、「ラベルをプログレスバーとして利用する」
なんていうのが、Excelでラベルをプログレスバーに使う方法があります。ただ、状況にもよりますから、メモリ喰いなるようだったら、あまり賛成できないです。
一度、作動中のメモリを監視したほうがよさそうです。
的確なアドバイスをありがとうございます。
ご指摘の通りで、とっても負荷がかかる処理を行っています。
提示していただいたURLを参考にしてみます。
どうもありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- Excel(エクセル) Excelのマクロについてご教授ください 2 2023/02/25 09:43
- Visual Basic(VBA) Vba UserFormを前面に出す方法を教えてください 1 2023/08/17 11:08
- Excel(エクセル) [クイックアクセスツールバー]の設定ファイルの格納場所について、 5 2023/04/21 14:43
- Visual Basic(VBA) VBA 参照先で選んだファイルをコピーし、出力先に別名で保存したい 8 2022/05/13 20:37
- Visual Basic(VBA) エクセルのマクロについて教えてください。 7 2023/07/04 09:18
- PowerPoint(パワーポイント) エクセルのマクロについて教えてください。 1 2022/03/25 17:03
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
- Excel(エクセル) アンケート集計用VBAについて教えて下さい。 約100人にアンケート内容が入ったExcelファイルを 1 2022/07/27 13:12
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「ご処理進めて頂きますようお...
-
エクセルで、日付を入力すると...
-
ifとswitchはどのように使い分...
-
セックスレスの既婚女性は自慰...
-
男性に対して、『女性への気遣...
-
ハードウェア処理とソフトウェ...
-
生ゴミ処理機の処理中のにおい...
-
DoEventsがやはり分からない
-
英語の知識があって、数学の知...
-
EXCEL VBA マクロ 実行する度に...
-
トイカメラやポラロイド風に加...
-
switch の範囲指定
-
結婚相手に望む条件は何ですか?
-
VBAでコピーと貼り付けに時間が...
-
Excel VBAにて2つの処理を同時...
-
再起処理について
-
VB.NET Excelを読み込んでDataT...
-
C言語switch文のcase記述について
-
並列処理
-
以下のページ内の用語の意味を...
マンスリーランキングこのカテゴリの人気マンスリー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がマクロ...
おすすめ情報