
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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
Excel VBA:フォーム←→セルのアクティブ切り替え
Excel(エクセル)
-
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
-
4
Access 複数フォームを開き、画面の最上面にしたいフォームをコント
その他(データベース)
-
5
VBA エンターキーでイベントに入りたい。
PowerPoint(パワーポイント)
-
6
ユーザーフォームのSetFocusが働かない?
その他(プログラミング・Web制作)
-
7
Excel ユーザーフォームをモードレスで表示後
Visual Basic(VBA)
-
8
日付型のフィールドに空白を入れる方法を教えてください
その他(データベース)
-
9
Access フォームのテキストボックスに半角英字のみで入力する設定は
Access(アクセス)
-
10
AccessのFormの設定で、開いた時に必ず最大化で表示する方法が分からず困っています
Access(アクセス)
-
11
access マクロでのフィルタの解除の方法
Access(アクセス)
-
12
UserForm1.Showでエラーになります。
工学
-
13
エクセルVBAでUserFormを起動した時
Excel(エクセル)
-
14
エクセルVBAで、MsgBox やInputBox は、画面の中央以外に表示させたい。
Excel(エクセル)
-
15
Excel vba ListBoxについて
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ユーザーフォームを表示中にシ...
-
Hideについて(.NET)
-
ユーザーフォームのテキストボ...
-
コントロールの存在確認
-
Form_Load と Form_Activate の...
-
ExcelVBAのユーザーフォームの...
-
ACCESS VBA ウィンドウを閉じる
-
エクセルVBAのフォームを最...
-
Access-VBAのPublic変数につい...
-
ACCESSのフォーム、開くんです...
-
クリックイベントなのに、2回ク...
-
VB.NETでフォームロード中のエ...
-
ユーザーフォームのラベルに時...
-
フォームの位置を取得したい
-
ユーザーフォームのコピー?
-
Microsoft Formsの「個人情報や...
-
ExcelVBAのユーザーフォームでe...
-
Excelにて、ユーザーフォームで...
-
MSGBOXのフォント大きさ変更
-
vb.netアプリケーション全ての...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ユーザーフォームを表示中にシ...
-
ExcelVBAのユーザーフォームの...
-
Microsoft Formsの「個人情報や...
-
Form_Load と Form_Activate の...
-
VBAでユーザーフォームを再表示...
-
クリックイベントなのに、2回ク...
-
ユーザーフォーム上に現在日時...
-
テキストボックス入力データの...
-
VBAのテキストフォームの折り返...
-
ACCESSのフォーム、開くんです...
-
Hideについて(.NET)
-
ユーザーフォームのテキストボ...
-
エクセルVBAのフォームを最...
-
モーダルフォームとモードレス...
-
EXCEL VBA ユーザーフォームの...
-
フォームのテキストボックスな...
-
コントロールの存在確認
-
パソコンの画面に合わせてユー...
-
フォームウィンドウを最前面に...
-
Accessで、一つのフォーム画面...
おすすめ情報