Microsoft Access Club >VBAのTips解説 >このページ >**** < 前項  サイト内検索
 

Parentプロパティを用いて簡潔にコードを記述する方法 : VBAのTips解説



Parentプロパティ

Parent プロパティは、コントロール、セクション、または他のコントロールを含むコントロールの親を参照します。Parent プロパティは、親がコントロールの場合はコントロール オブジェクトを参照し、親がAccess オブジェクトの場合はAccessObject オブジェクトを参照します。なお、値の取得のみ可能です。

  • 書式
expression.Parent
  内容 備考
expression 対象となるオブジェクトへの参照を表すオブジェクト式を指定します 省略不可
  • 解説

Parent プロパティを用いるとオブジェクト名が変更された場合でも相関関係が存在する限り、コードの書き換えが不要になるメリットがあります。

例えば、メイン/サブの連結フォームで使用する場合を想定すると、サブ側のコード内で以下のような記述が可能です。

正規の記述 : Forms!メインフォーム名!サブフォームオブジェクト名!オブジェクト名
簡潔な記述 : Parent!サブフォームオブジェクト名.Form.オブジェクト名

事例 ) 全てのクエリ名を取得し、メッセージボックスに表示する

Function関数を作成し、コントロールの更新イベントなどでテストしてみましょう。

Function MyParentShow(ctl As Control, i As Byte)

    On Error GoTo エラー
    
    Select Case i
        Case 0
            MsgBox ctl.Name
        Case 1
            MsgBox ctl.Parent.Name
        Case 2
            MsgBox ctl.Parent.Parent.Name
        Case 3
            MsgBox ctl.Parent.Parent.Parent.Name
        Case Else
            MsgBox "階層の指定が無効です。", vbCritical
        End Select
    
    Exit Function
    
エラー:

    If Err.Number = 2452 Then
        MsgBox i & "階層前には、親オブジェクトが存在しません。", vbCritical
    Else
        MsgBox Err.Number & ": " & Err.Description, vbCritical
    End If
        
    Exit Function
    
End Function

コントロールの更新後処理イベントプロシージャの作成

作成済みのFunctopnプロシージャ MyParentShow を用いて、親をチェックします。利用方法は、以下のようにCall関数で呼び出します。引数が設定されているので注意して下さい。

Private Sub txt日付_AfterUpdate()

    Call MyParentShow(ActiveControl, 0)
    
End Sub
実行結果

コントロール自身が表示されます。引数に0を代入すると、それ自身を表示するようになっています。

Private Sub txt日付_AfterUpdate()

    Call MyParentShow(ActiveControl, 1)
    
End Sub
実行結果

コントロールが属するフォーム名が表示されます。

ページの先頭へ 前ページへ戻る

 


Parentプロパティを用いて簡潔にコードを記述する方法 : VBAのTips解説


 

-Microsoft Access Club-

動画配信(ダウンロード、ストリーミング)対応の専用レンタルサーバー。データセンター設置場所はアメリカ合衆国です。: 動画サーバードットコム
動画配信(ダウンロード、ストリーミング)対応の専用レンタルサーバー。
データセンター設置場所はアメリカ合衆国です。
100Mbps〜1Gbpsまで対応できます。