25 | フォーム系 - フォームの幅と各セクションの高さを収集する | ||
カレントデータベース内にあるフォーム名の一覧とともに、それぞれのフォームの幅、および各セクションの高さ(セクションの有無も確認)を収集します。
※VBAで扱う幅や高さのプロパティ値の単位はすべて「twip」です。プロパティシートではcm単位で表示されますが、「1cm = 567twip」で換算できます。
Sub Sample_3_07() 'フォームの幅と各セクションの高さを収集する Dim dbs As Database Dim ctn As Container Dim doc As Document Dim sct As Section Dim strFormName As String Dim varFormHeaderH As Variant Dim varFormFooterH As Variant Dim varPageHeaderH As Variant Dim varPageFooterH As Variant On Error GoTo Err_Handler Set dbs = CurrentDb Set ctn = dbs.Containers!Forms For Each doc In ctn.Documents strFormName = doc.Name DoCmd.OpenForm strFormName, acDesign Debug.Print "■" & strFormName With Forms(strFormName) Debug.Print " フォームの幅:" & .Width Debug.Print " 詳細セクションの高さ:" & .Section(acDetail).Height varFormHeaderH = Null varFormFooterH = Null varPageHeaderH = Null varPageFooterH = Null varFormHeaderH = .Section(acHeader).Height varFormFooterH = .Section(acFooter).Height varPageHeaderH = .Section(acPageHeader).Height varPageFooterH = .Section(acPageFooter).Height Debug.Print " フォームヘッダーの高さ:" & Nz(varFormHeaderH, "セクションなし") Debug.Print " フォームフッターの高さ:" & Nz(varFormFooterH, "セクションなし") Debug.Print " ページヘッダーの高さ:" & Nz(varPageHeaderH, "セクションなし") Debug.Print " ページフッターの高さ:" & Nz(varPageFooterH, "セクションなし") Debug.Print "------------------" End With DoCmd.Close acForm, strFormName, acSaveNo Next doc Exit_Here: Exit Sub Err_Handler: If Err.Number = 2462 Then 'セクションがないとき Resume Next Else MsgBox "エラー番号 : " & Err.Number & vbCrLf & _ Err.Description, vbOKOnly + vbCritical Resume Exit_Here End If End Sub 実行例:
|
|||
|
Copyright © T'sWare All rights reserved |