#119 | 省略可能な引数を持つプロシージャの作り方 | VBA | |
省略可能な引数を持つプロシージャの例として、フォームを開く際に用いる、DocmdオブジェクトのOpenFormメソッドがあります。このメソッドの構文は次のようになっており、2番目以降の任意の引数を省略することができます。 構文: ※[ ]で囲まれた部分はどれでも省略することができます。 DoCmd.OpenForm formname[,view][,filtername][,wherecondition] [,datamode][,windowmode][,openargs] 使用例: '2番目の引数以降、すべてを省略
DoCmd.OpenForm "商品一覧フォーム" '3・4・6・7番目の引数を省略 DoCmd.OpenForm "商品一覧フォーム", acDesign, , , acFormAdd '2〜5・7番目の引数を省略 DoCmd.OpenForm "商品一覧フォーム", , , , , acDialog このような、省略可能な引数を持つプロシージャは、オリジナルのプロシージャにも適用することができます。それには、次の2点に注意してプロシージャを記述します。
次の例は、上記のOpenFormメソッドをカスタム化したものです。 サンプルプロシージャ: Sub cst_OpenForm(strFrm As String, Optional View As Variant, _
Optional Windowmode As Variant) Dim varViewType As Variant Dim varWinMode As Variant 'ビュータイプの設定 If IsMissing(View) Then 'View引数が省略されていたら、既定値としてacNormalを設定します varViewType = acNormal Else varViewType = View End If 'ウィンドウスタイルの設定 If IsMissing(Windowmode) Then 'Windowmode引数が省略されていたら、既定値としてacWindowNormalを設定します varWinMode = acWindowNormal Else varWinMode = Windowmode End If 'フォームを開きます DoCmd.OpenForm strFrm, varViewType, , , , varWinMode End Sub 使用例: '普通にフォームを開きます
cst_OpenForm "商品一覧フォーム" 'デザインビューでフォームを開きます cst_OpenForm "商品一覧フォーム", acDesign 'ダイアログでフォームを開きます cst_OpenForm "商品一覧フォーム", , acDialog |
|||
|
Copyright © T'sWare All rights reserved |