50 すべてのフォームやレポートのデザインビューを閉じる

デザインビューやフォームビューなどの状態に関わらず、現在開いているフォームは「Forms」コレクションに格納されています。同様にレポートは「Reports」コレクションに格納されています。

また、現在開いているフォームやレポートの数は、各コレクションの「Count」プロパティで取得できます。

それらを踏まえて、ループでDoCmdオブジェクトの「Close」メソッドを実行することで、開いているフォームやレポートをまとめて閉じることができます。
  • Closeメソッドの2つめの引数にはフォーム名やレポート名を指定しますが、Formsコレクションなどの添え字は「0」から始まりますので、カウンタが「0」〜「.Count - 1」のループを構成します。
  • しかし、1つフォームを閉じるとFormsコレクションの要素数も1つ減って内容がシフトしていきます(Reportsも同様)。そのため、実際には「.Count - 1」→「0」に向けて1つずつデクリメントするループを構成する必要があります。
プログラム

Sub SampleCode_50()
'すべてのフォームやレポートのデザインビューを閉じる

  Dim iintLoop As Integer

  'すべてのフォームを閉じる
  For iintLoop = Forms.Count - 1 To 0 Step -1
    DoCmd.Close acForm, Forms(iintLoop).Name
  Next iintLoop

  'すべてのレポートを閉じる
  For iintLoop = Reports.Count - 1 To 0 Step -1
    DoCmd.Close acReport, Reports(iintLoop).Name
  Next iintLoop

End Sub

| Index | Prev | Next |



Copyright © T'sWare All rights reserved