Accessのコントロール一覧を取得


Accessでフォーム、コントロールの情報を取得するのは以下の通り。
※モジュールとして作成しています。

Option Compare Database

'
'   フォームに配置されたコントロールの情報取得します。
'
Public Function get_controls()
     
    Dim obj As AccessObject
    Dim myDB As Object
    Dim formname As String
    
    Dim ctl As Control
    Dim wkTextBox As TextBox
    Dim wkButton As CommandButton
    Dim wkComboBox As ComboBox
    Dim wkLabel As Label
    
    
    '自分自身(MDB)を取得する
    Set myDB = Application.CurrentProject
    
    'すべてのフォームを取得
    For Each obj In myDB.AllForms
    
        formname = obj.Name
        
        'フォームをデザイナで開く
        DoCmd.OpenForm formname, acDesign, , , , acHidden
        
        'フォーム内のコントロールを取得
        For Each ctl In Forms(formname).Controls
        
            Call putText_Propatey(formname, ctl)
            
        Next ctl
    
        'フォームを閉じる
        DoCmd.Close acForm, formname, acSaveNo
            
    Next obj
    
    MsgBox "プロパティ情報を出力しました。"
    Set myDB = Nothing

End Function

Private Function putText_Propatey(ByVal pformName As String, ByVal inCtrl As Object)
  Dim fileNo As Integer
  Dim buf As String
  Dim i As Long

On Error Resume Next

    fileNo = FreeFile
    Open "D:\Propatey.csv" For Append As #fileNo
    
    '共通部の出力
    buf = buf & "pformName=" & pformName & ","
    buf = buf & "Name=" & inCtrl.Name & ","
    buf = buf & "TypeName=" & TypeName(inCtrl) & ","
        
    'プロパティの中身を出力
    For i = 0 To inCtrl.Properties.Count - 1
    
        buf = buf & inCtrl.Properties(i).Name & "-" & inCtrl.Properties(i).Value & ","
        
    Next

    Print #fileNo, buf
    
    Close #fileNo

End Function


動作確認環境:Access 2007