いつもお世話になっております。
以下の疑問点が出ています。
どなたか答えをご存知の方がおりましたらご回答願います。
[現象]
Form1からForm2を呼び出し、Form1をhideしても
Form1が隠れない。
[条件]
Form1のボタンをクリック後、すぐに何でもいい(フォルダを開いたウィンドウとか)のでウィンドウを最前面に表示してください。
[プログラム]
--form1--
Private Sub Command1_Click()
On Error GoTo ERROR_END
Screen.MousePointer = vbHourglass
'請求書作成画面に移行
Form2.Show
Screen.MousePointer = vbDefault
Exit Sub
ERROR_END:
Screen.MousePointer = vbDefault
MsgBox Error(Err)
End Sub
Private Sub Form_Load()
Me.Show
Screen.MousePointer = vbDefault
End Sub
--form2--
Private Sub Form_Load()
Dim i, strsql
For i = 0 To 50000000
strsql = "時間稼ぎ"
Next
Me.Show
Form1.Hide
Screen.MousePointer = vbDefault
End Sub
[Form]
Form1にコマンドボタンを一つ配置するだけでOKです。
[環境]
WinXP SP1
VB6.0 SP6
[その他]
WIN98ではこの事象は起こらないと報告受けてます。
バグならばバグと、PGミスならミスと明確に答えていただけると大変助かります。
どうぞよろしくお願いします。
No.1ベストアンサー
- 回答日時:
VB6.0(SP5)でやってみましたが、いちおう動作しています。
ただし・・・For i = 0 To 50000000
strsql = "時間稼ぎ"
Next
で1分以上かかります。DoEvents が入っていないので、その間操作が出来ません。
Form1 を非表示にするには、Form1でForm2を表示した後に行っても良いと思います。(Form2でForm1を閉じません)
請求書作成画面に移行
Form2.Show
Screen.MousePointer = vbDefault
Form1.Hide
Exit Sub
ご回答ありがとうございます。
>For i = 0 To 50000000
については根拠のある数値ではありません。
ただ、表示するまでに時間をかけたいから空回ししているだけなので。。。
>その間操作が出来ません
については、画面下にあるバーから開いている
フォルダを表示していただくだけなので、今の段階では問題ないと考えています。
参考に示していただいたプログラムなのですが、
実際はそのように作成して、この現象が起こってしまったので、分かりやすくするために上記のように展開して掲載させて頂きました。
No.2
- 回答日時:
Win2k/6.0Sp5ですが、全く問題ないです(^^;
一応コンパイルしてexeでも試しましたが・・・
気になることがいくつかあったので。
1.LoadイベントにMe.Showは不要
FormをShowすることでLoadをしているので、不要だと思います。
2.#1さんがおっしゃっている通り、隠すタイミングがForm2の表示直後なのであれば、Form1側でMe.Hideとすべきです。
Form1.Hideとするとややこしくなるので止めたほうが良いですね。もし、Form1がロードされていない(いてはいけない)状況では、このメソッドでインスタンスが作成されてしまいますから。
コードを見る限り「Formの暗黙のインスタンス」についてよく理解されていないように思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 2つのVBAを一緒にしたら機能しなくなりました(エクセル) 7 2022/06/02 12:41
- Visual Basic(VBA) 複数シートの複数列に入力されているデータを重複なしで抽出するVBAを作りたいです。 9 2022/06/17 10:33
- Visual Basic(VBA) ①ExcelVBAでカレンダーを作り、別のユザーフォームで日付を入力したいのですがエラーになります。 1 2023/02/17 18:39
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Excel(エクセル) なぜExit Subがあるのかわかりません 4 2023/02/19 12:34
- Visual Basic(VBA) 【VBAエラー】Nextに対するForがありません 対策について 5 2022/11/21 21:26
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Visual Basic(VBA) 九九の答えの計算 3 2022/12/20 22:13
- Excel(エクセル) VBAについて 3 2022/06/19 18:19
- Visual Basic(VBA) outlook マクロが終了しません。 1 2022/09/02 11:14
このQ&Aを見た人はこんなQ&Aも見ています
-
新NISA制度は今までと何が変わる?非課税枠の拡大や投資対象の変更などを解説!
少額から投資を行う人のための非課税制度であるNISAが、2024年に改正される。おすすめの銘柄や投資額の目安について教えてもらった。
-
モーダルフォームとモードレスフォーム
Visual Basic(VBA)
-
Form_Load と Form_Activate のタイミング
Visual Basic(VBA)
-
VBでクリックイベントを発生させたいです
Visual Basic(VBA)
-
-
4
VB6で、非表示モジュール(?)の表示方法
Visual Basic(VBA)
-
5
DoEventsがやはり分からない
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
プログラミング、アーキテクチ...
-
【VB.NET】別Formのボタンが押...
-
CreateDialogについて
-
photoshopで書いた四角の枠の中...
-
VBAで改行の入ったデータの正規...
-
else if文の順序を変えることに...
-
五芒星は、悪魔崇拝とどういう...
-
ExcelでVBAを利用してオートシ...
-
C言語でのマウスを移動とマウス...
-
RPG(AS400)の本、サイトってあ...
-
node* ってなんなのでしょうか?
-
HTMLのtextbox類に文字を残す
-
VB6.0 でメニューを作りたいん...
-
UWSCのBTN関数について。
-
YOASOBI
-
Motifのイベントの制御について...
-
AS3.0 読み込んだ外部テキスト...
-
マスクにグラデーションをかけ...
-
ボタンの背景を透過させたいです!
-
以下のActionScriptをスッキリ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プログラミング、アーキテクチ...
-
VB6.0で、フォームから、別のフ...
-
【VB.NET】別Formのボタンが押...
-
フォームの生成と破棄
-
VB6.0のHideのバグ?
-
DataTableの件数を取得したい
-
インスタンスとポインタ
-
ダミーウインドウ
-
Python でシャットダウンのコマ...
-
画像を一定時間ごとに切り替え...
-
CreateDialogについて
-
「Me」を「Form1」にするとエラ...
-
ウインドウハンドルとインスタ...
-
背景画像が拡大縮小しつつ、大...
-
EXEからDLLへ移植
-
Flashの画面をJPEG画像にしてメ...
-
携帯Lite1.1用のプログラム
-
new演算子について教えていただ...
-
getURLでの変数の渡し方
-
【ActionScript】コンボボック...
おすすめ情報