VBレスキュー(花ちゃん)
VB2005用トップページへVBレスキュー(花ちゃん)のトップページVB6.0用のトップページ各掲示板

リンク元へ戻ります。 フォーム関係のメニュー
1.表示しているフォームを一度に閉じる
2.フォームの背景にグラデーションを描く
3.メニューの下に3Dラインを引く
4.アクティブなウィンドウだけをタスクバーに表示する
5. フォームを常に手前に表示する
6.フォームの最大化・最小化を取得及び設定・画面の中央に表示する
7.システムメニュー(フォームの左上)を操作する
8.タイトルバーなしウィンドウの作成
9.円形・多角形のフォーム及びコントロールを作成する
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.その他、当サイト内に掲載のフォームに関するサンプル


1.表示しているフォームを一度に閉じる
1.閉じる又は×をクリックしたら開いているフォームをすべて閉じる
2.マイクロソフト推奨のやり方
3.ゆう(U)さんに投稿頂いた分
4. 
5. 
6. 

 下記プログラムコードに関する補足・注意事項 
動作確認:Windows Vista・Windows 7 (32bit) / VB6.0(SP6)
Option :[Option Explicit]
参照設定:追加なし
使用 API:
なし
その他 :
    :
このページのトップへ移動します。 1.閉じる又は×をクリックしたら開いているフォームをすべて閉じる

次のプロシージャを標準モジュールに作成する

Public Sub sAllEnd()
   Dim myObject As Object
   For Each myObject In Forms
     Unload myObject
     Set myObject = Nothing
   Next
End Sub


各フォームの Unload イベント からプロシージャを呼ぶ
Private Sub Form_Unload(Cancel As Integer)
   Call sAllEnd
   Unload Me
End Sub

又はForm1だけに書く
Private Sub Form_Unload(Cancel As Integer)
   Dim myObject As Object
   For Each myObject In Forms
     Unload myObject
     Set myObject = Nothing
   Next
   Unload Me
End Sub

このページのトップへ移動します。 2.マイクロソフト推奨のやり方

マイクロソフト推奨のやり方(FAQ集より)     (029)

Private Sub Form_Unload(Cancel As Integer)
   Dim i As Integer
   While Forms.Count > 1 '自分以外のフォームを探します
    i = 2
   While Forms(i) Is Me
     i = i + 1
   Wend
     Unload Forms(i)
   Wend
   '自分自身もアンロードし、アプリケーションは終了します
  Unload Me
   'End  消しておく(使用しない方が良い)
End Sub

このページのトップへ移動します。 3.ゆう(U)さんに投稿頂いた分

ゆう(U)さんに投稿頂いた分         (029)

'==========================================================
'全てのフォームを解放する sFormAllUnload
'==========================================================
' Call sFormAllUnload
' 引数 なし
'----------------------------------------------------------
'MDI親・子フォームのUnload順を考慮しています。
'しかしSDIフォームの親子は考慮していないので、その辺は
'不安ですが・・・(frmXXX.Show vbModeless, Me などの場合
'親が消されるとUnloadMode=5で子もUnloadされます)
'(Forms.Count - 1 To 0)でUnloadの方が良いかも?
'----------------------------------------------------------
Public Sub sFormAllUnload()
   Dim myForm As Form
   ' フォームの解放
  For Each myForm In Forms
     If Not (TypeOf myForm Is MDIForm) Then
       Unload myForm
     End If
   Next myForm
   ' MDIフォームの解放(MDI親フォーム以外はないはず)
   For Each myForm In Forms
     Unload myForm
   Next myForm
End Sub

このページのトップへ移動します。 4.


このページのトップへ移動します。 5.


このページのトップへ移動します。 6.


このページのトップへ移動します。 検索キーワード及びサンプルコードの別名(機能名)
表示しているフォームを一度に閉じる  全てのフォームを解放する




このページのトップへ移動します。