
No.3ベストアンサー
- 回答日時:
そのような時は、標準モジュールに Sub Main を作成して
プロジェクト→プロパティのスタートアップの設定を
フォームからSub Main に切り替えます。
そしてSub Mainの中で、formの表示とLoop処理を行います。
No.6
- 回答日時:
Formロード時に時間の掛かる処理(無限ループ含む)をする場合は
Me.Show '#1さんの方法では拙いです
Do
'...
Doevents
Loop
とします。
これで表示されるはずです。
# Doeventsを入れないと本当に無限ループになってしまい終わらせることが出来ませんよ(^^;
ですが、表示しようとしているフォームのオブジェクトと関係ない処理をしている(つまり、無限ループの処理にフォームの表示が必要なく、単にタイミング的にフォーム表示の前に行いたい)場合は、#3さんのようにMain()や他フォームからの遷移前に行います。
# 基本的にForm_Loadで時間の掛かる処理を入れるのは良くありません
DoEventsを入れると、ループ間にOSからのメッセージを受け取ることが出来ますので、描画をしたりタイトルバーの×ボタンが効くようになります(ただし、×ボタンを押してもプロセスは終わりません)。
また、Do...Loopなどの無条件ループを使う場合は「必ず抜けることのできる条件を入れておく」というのが大前提です。
Doeventsを入れてなくて、テストで実行→無限ループでVBを泣く泣く終了→ソースが・・・(T_T)
ということのもなりかねませんから。
No.5
- 回答日時:
Do Loop の構文をよく読みましょう。
Do [{While | Until} condition]
[statements]
[Exit Do]
[statements]
Loop
または
Do
[statements]
[Exit Do]
[statements]
Loop [{While | Until} condition]
です。
While または Until 条件を設定していますか?
もしくは If 条件などで、Exit Do していますか?
ちゃんと設定していれば、ループを抜けて、フォームは表示されます。
今一度、プログラムを見直してください。
No.4
- 回答日時:
無限ループで何をしようとしているのか不明なのですが、フォームが表示されないところを見ると、本当に”無限”にループしているようで、それはプログラミング的にありえないのでは?
それは置いておいて、フォームが初めて表示されるタイミングでやりたいが、Form_Loadが完了してから(フォームが表示されてから)行いたい場合に私がとっている方法は、Form_Activateを使っています。ただし、Form_Activateはフォームがアクティブに成るたびに発生するイベントなので、初回であるかどうかは、Privateの変数を持って判断しています。
あまりスマートでは無いですが、この方法でうまく行っています。
他の方で、もっとスマートなやり方有る様なら、フォローお願いします。
No.2
- 回答日時:
>フォームロード時にDo Loopを使うとフォームが表示されません。
フォームロード時には無限ループは使えないんでしょうか?できればフォームロード時に繰り返し処理をしたいんですけどフォームロードの関数を抜けたときにフォームが作成されますので、表示されないですよ。
フォームロード時にブレークポイントつけてステップ実行してみれば確認できます。
>何か方法があれば教えてください。
具体的にどのような処理がしたいのかを書いて頂かないと・
無限ループ処理は本当にフォームロード時でやらなければいけないものなのかを考える必要がありそうです。
無限ループ自体も含めて・
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript ラジオボタンによるフォームの開閉を行いたい 3 2022/03/31 21:30
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Access(アクセス) Access2016でフォーム内にExcelの複数シートを 表示させるイメージで複数テーブルの デー 1 2022/11/25 15:30
- その他(ソフトウェア) YahooのIDがロックされてしまいました 1 2022/11/25 19:49
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- Google Drive googleフォームについて 1 2022/11/10 15:18
- Google Drive Googleフォームについて(至急) 2 2022/06/28 21:45
- Access(アクセス) Dlookupにエラーがでてしまう 1 2022/10/31 14:35
- Visual Basic(VBA) VB.net フォーム 親子 1 2022/07/04 19:00
- Access(アクセス) Accessでセレクタをダブルクリックで別フォームで詳細表示 3 2022/12/20 10:36
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ユーザーフォームを表示中にシ...
-
ExcelVBAのユーザーフォームの...
-
Microsoft Formsの「個人情報や...
-
VB.NETでフォーム間でのコント...
-
クリックイベントなのに、2回ク...
-
ユーザーフォームについて質問...
-
VBAのテキストフォームの折り返...
-
エクセルVBAのフォームを最...
-
ACCESSのフォーム、開くんです...
-
ブックをCloseまたはQuitで閉じ...
-
フォームに引数を渡す方法のやり方
-
VBA(エクセル)のユーザー...
-
コントロールの存在確認
-
ユーザーフォームのテキストボ...
-
EXCEL VBA ユーザーフォームの...
-
フォームの位置を取得したい
-
ExcelVBAでユーザーフォームが...
-
Excel VBA ユーザーフォーム 複...
-
【VBAユーザーフォームで閉じる...
-
指定の動作中ユーザーフォーム...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ユーザーフォームを表示中にシ...
-
ExcelVBAのユーザーフォームの...
-
Form_Load と Form_Activate の...
-
VBAでユーザーフォームを再表示...
-
Microsoft Formsの「個人情報や...
-
クリックイベントなのに、2回ク...
-
ユーザーフォームのテキストボ...
-
ユーザーフォーム上に現在日時...
-
ACCESSのフォーム、開くんです...
-
エクセルのチェックボックスの...
-
エクセルVBAのフォームを最...
-
VB.NETでフォームロード中のエ...
-
EXCEL VBA ユーザーフォームの...
-
VBA(エクセル)のユーザー...
-
【Excel VBA】ユーザフォームを...
-
Hideについて(.NET)
-
(Excel+VBA)ユーザーフォームの...
-
モーダルフォームとモードレス...
-
VBA コンボボックスとテキスト...
-
アクセス2013 フォームが...
おすすめ情報