VBAで開いているオブジェクトを閉じる(DoCmd.Close)
VBAでフォーム、レポート、データシートなど開いているオブジェクトを閉じるときは、DoCmd.Closeを使います。
DoCmd.Closeの書式
DoCmd.Close ObjectType, ObjectName, Save
■ObjectType/オブジェクト種類(省略可能)
フォームやレポートなど、閉じるオブジェクトの種類を@の引数で指定します。

■ObjectName/オブジェクト名(省略可能)
フォームやレポートなど、閉じるオブジェクトの名前を指定します。

■Save/保存有無(省略可能)
オブジェクトを閉じるときに保存するかどうかをAの引数で指定します。

ちなみに、引数を全て省略したときはアクティブオブジェクト(アクティブウィンドウ)を閉じます。

DoCmd.Close

 @ObjectType(オブジェクト種類)に指定する定数
acDataAccessPage データアクセスページ
acDefault アクティブウィンドウ(引数を全て省略したときと同じ効果)
acDiagram ダイアグラム
acForm フォーム
acFunction 関数
acMacro マクロ
acModule モジュール
acQuery クエリー
acReport レポート
acServerView サーバービュー
acStoredProcedure ストアドプロシージャ
acTable テーブル

 ASave(保存有無)に指定する定数
acSaveNo 保存しません
acSavePrompt 保存確認のダイアログを表示します
acSaveYes 自動的に保存します
DoCmd.Closeの使用例
次の例では、DoCmd.Closeを使ってフォーム「フォーム1」を閉じています。ちなみに、第3引数へacSaveNoを指定し、保存を行わないようにしています。

Sub s_DoCmd_Clse_Sample()

    'フォーム1を閉じる
    DoCmd.Close acForm, "フォーム1", acSaveNo

End Sub

また、次の例では、DoCmd.Closeを使ってクエリー「クエリ1」を閉じています。第3引数にはacSaveYesを指定し、自動的に保存するようにしています。

Sub s_DoCmd_Clse_Sample()

    'フォーム1をデザインビューで閉じる
    DoCmd.Close acQuery, "クエリ1", acSaveYes

End Sub
Copyright(C) 1999-2006 結城圭介。 All rights reserved