Form1からForm2を表示するという処理を以下のようにコーディングしてみました。
**Form1.frm***
Private Sub Command1_Click()
Form1.Hide
Form1.vbModal
Form1.Show
End Sub
**Form2.frm***
Private Sub Command1_Click()
Unlaod Me
End Sub
画面にエクスプローラ等のウィンドウが表示されているときに、Form2を表示させようとすると非アクティブ状態で表示されてしまいます。
また、Form2をUnloadするとForm1が表示されるのですが、その際に、Form1のタイトルと、タスクバーに表示されているボタンが反転した後非アクティブ状態になってしまいます。
フォームは常にアクティブで表示させたいのですが、どうすればよいのでしょうか?
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
私の環境ではそのような現象は起きません。
何度も Form1 <-> Form2 をやっても
両フォームともちゃんとアクティブ状態になります。
なので、環境のせいではないでしょうか?
使用しているOS及び、VBのバージョン、サービスパック等は
どのようになっていますか?
最新のサービスパックはあたっていますか?
ちなみに私の環境は以下の通りです。
OS:WinNT4.0 SP6a
VB:Ver6.0 SP5
IE:Ver5.5
No.3
- 回答日時:
多分、Form1をHideした時点で、そのアプリケーションには
画面が一つもない状態になるので、別アプリにフォーカス
が移動してしまいます。
そこからForm2を表示するので、Form2が非アクティブな状
態で表示されてしまうのでしょう。
で、Form1を消すつもりならForm1をModalで表示する必要
はないと思います。
**Form1.frm***
Private Sub Command1_Click()
Form2.Show vbModeless
Form1.Hide
End Sub
**Form2.frm***
Private Sub Command1_Click()
Unload Me
End Sub
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
Form1.Show
End Sub
で、どうでしょうか?
No.2
- 回答日時:
j_euro ふたたびです。
そいで・・
これ
>From2のUnloadの直前に
>Form1.SetFocus
は、どうでしたか?
つまり、ここを
>>**Form2.frm***
>>Private Sub Command1_Click()
>>Unlaod Me
>>End Sub
こうやる
**Form2.frm***
Private Sub Command1_Click()
Form1.SetFocus
Unlaod Me
End Sub
すなわち
>フォームは常にアクティブ
(「常に前面」じゃなくてね)
のためには、他のフォームが終わるときに、目的のフォームにフォーカスをセットする。
No.1
- 回答日時:
えと、やりたいことと、現状がまだよくわからないので、当てずっぽうなんですけど・・・
From2のUnloadの直前に
Form1.SetFocus
してみたらどう?
これは、
>Private Sub Command1_Click()
>Form1.Hide
>Form1.vbModal
>Form1.Show
>End Sub
こうなのかな?
Private Sub Command1_Click()
Form1.Hide
Form2.Show vbModal
End Sub
当たった?
この回答への補足
すいません。コード書き間違えてました・・・。
Private Sub Command1_Click()
Form1.Hide
Form2.Show vbModal
Form1.Show
End Sub
でした。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Visual Basic(VBA) VBA Bookの表示、非表示 1 2022/09/16 20:44
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- Visual Basic(VBA) userformでSheetを選択して開くコード 1 2023/05/15 16:27
- Visual Basic(VBA) リストボックス セルの値を取得する 1 2022/05/21 20:47
- Visual Basic(VBA) ユーザーフォームに2つのコンボボックス銀行名「ConboBox1」支店名を「ConboBox2」とし 4 2022/08/03 17:34
- Visual Basic(VBA) 九九の答えの計算 3 2022/12/20 22:13
- Access(アクセス) Vba Userformを前面に出すについて 3 2022/04/15 12:29
- Visual Basic(VBA) ①ExcelVBAでカレンダーを作り、別のユザーフォームで日付を入力したいのですがエラーになります。 1 2023/02/17 18:39
- Excel(エクセル) 【マクロ】リボン、行列、数式・ステータスバを非表示に 4 2022/12/12 07:32
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教える店舗&オフィスのセキュリティ対策術
中・小規模の店舗やオフィスのセキュリティセキュリティ対策について、プロにどう対策すべきか 何を注意すべきかを教えていただきました!
-
Excel VBA:フォーム←→セルのアクティブ切り替え
Excel(エクセル)
-
VBAにてメッセージボックスを最前面に表示させる
その他(プログラミング・Web制作)
-
VBAでユーザーフォームの表示を確認
Visual Basic(VBA)
-
-
4
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
5
FORMが開いているかどうかの確認方法
Visual Basic(VBA)
-
6
フォームウィンドウを最前面に表示したい(ACCESS)
Microsoft ASP
-
7
アクセスVBAのMe!と[ ]
Access(アクセス)
-
8
エクセルVBA テキストボックスに3桁ごとにコンマ
Visual Basic(VBA)
-
9
Access 複数フォームを開き、画面の最上面にしたいフォームをコント
その他(データベース)
-
10
VBにて、非アクティブでフォームを表示する方法
Visual Basic(VBA)
-
11
アクセスでレコードの内容が変更されたかどうかを調べるには
Access(アクセス)
-
12
Form_Load と Form_Activate のタイミング
Visual Basic(VBA)
-
13
Accessでテーブルの値をテキストボックスに代入するには?
Access(アクセス)
-
14
[VBA] UserForm を Excel の Window の前面に表示させない方法
その他(プログラミング・Web制作)
-
15
どこにもフォーカスを当てたくない
Access(アクセス)
-
16
UserForm1.Showでエラーになります。
工学
-
17
Excel ユーザーフォームをモードレスで表示後
Visual Basic(VBA)
-
18
エクセルVBAで、MsgBox やInputBox は、画面の中央以外に表示させたい。
Excel(エクセル)
-
19
日付型のフィールドに空白を入れる方法を教えてください
その他(データベース)
-
20
AccessからExcelのファイルを起動する
その他(データベース)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ExcelVBAのユーザーフォームの...
-
ユーザーフォームを表示中にシ...
-
Hideについて(.NET)
-
Form_Load と Form_Activate の...
-
エクセルVBAのフォームを最...
-
ユーザーフォーム上に現在日時...
-
【VBAユーザーフォームで閉じる...
-
ユーザーフォームのラベルに時...
-
MSGBOXのフォント大きさ変更
-
コントロールの存在確認
-
Microsoft Formsの「個人情報や...
-
VBAでユーザーフォームを再表示...
-
フォームのテキストボックスな...
-
ACCESSのフォーム、開くんです...
-
アクセス2013 フォームが...
-
エクセルのチェックボックスの...
-
ExcelVBAのユーザーフォームでe...
-
ユーザーフォームのテキストボ...
-
クリックイベントなのに、2回ク...
-
フォームのアクティブと非アク...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ユーザーフォームを表示中にシ...
-
クリックイベントなのに、2回ク...
-
ExcelVBAのユーザーフォームの...
-
ユーザーフォームのテキストボ...
-
Microsoft Formsの「個人情報や...
-
ユーザーフォーム上に現在日時...
-
Form_Load と Form_Activate の...
-
モーダルフォームとモードレス...
-
Excelにて、ユーザーフォームで...
-
VBAでユーザーフォームを再表示...
-
【VBAユーザーフォームで閉じる...
-
MSGBOXのフォント大きさ変更
-
VBA(エクセル)のユーザー...
-
Hideについて(.NET)
-
エクセルVBAのフォームを最...
-
コントロールの存在確認
-
ACCESSのフォーム、開くんです...
-
'ユーザーフォーム右上隅の[×...
-
フォームウィンドウを最前面に...
-
ユーザーフォームのラベルに時...
おすすめ情報