Module.ProcOfLine プロパティ (Access)
ProcOfLine プロパティは、標準モジュールまたはクラス モジュール内の指定された行を含むプロシージャの名前を返します。 読み取り専用文字列。
構文
式。ProcOfLine (Line, ProcKind)
式Module オブジェクトを表す変数。
パラメーター
名前 | 必須 / オプション | データ型 | 説明 |
---|---|---|---|
Line | 必須 | 長整数型 (Long) | モジュール内の行番号。 |
ProcKind | 必須 | vbext_ProcKind | プロシージャの種類。 使用できる設定値については、次の「備考」を参照してください。 |
注釈
引数 ProcKind の値は、次に示す vbext_ProcKind クラスの定数のいずれかです。
定数 | 説明 |
---|---|
vbext_pk_Get | Property Get プロシージャ |
vbext_pk_Let | Property Let プロシージャ |
vbext_pk_Proc | Sub プロシージャまたは Function プロシージャ |
vbext_pk_Set | Property Set プロシージャ |
指定された行番号の場合、 ProcOfLine プロパティは、その行を含むプロシージャの名前を返します。 プロシージャ定義の直前にあるコメントとコンパイル定数は、そのプロシージャの一部と見なされるため、 ProcOfLine プロパティは、プロシージャの本文内にない行のプロシージャの名前を返す場合があります。
ProcStartLine プロパティは、プロシージャが開始される行を示します。ProcBodyLine プロパティは、プロシージャ定義が開始される行 (プロシージャの本文) を示します。
ProcKind 引数は、行が Sub プロシージャまたは Function プロシージャ、Property Get プロシージャ、Property Let プロシージャ、または Property Set プロシージャのいずれに属しているかを示します。 行のプロシージャの種類を確認するには、 Long 型の変数を ProcOfLine プロパティに渡し、その変数の値を確認します。
注:
ProcOfLine プロパティは Sub プロシージャと Function プロシージャを同様に扱いますが、Property プロシージャの種類ごとに区別します。
例
次の関数プロシージャは、指定したモジュール内のすべてのプロシージャの名前を一覧表示します。
Public Function AllProcs(ByVal strModuleName As String)
Dim mdl As Module
Dim lngCount As Long
Dim lngCountDecl As Long
Dim lngI As Long
Dim strProcName As String
Dim astrProcNames() As String
Dim intI As Integer
Dim strMsg As String
Dim lngR As Long
' Open specified Module object.
DoCmd.OpenModule strModuleName
' Return reference to Module object.
Set mdl = Modules(strModuleName)
' Count lines in module.
lngCount = mdl.CountOfLines
' Count lines in Declaration section in module.
lngCountDecl = mdl.CountOfDeclarationLines
' Determine name of first procedure.
strProcName = mdl.ProcOfLine(lngCountDecl + 1, lngR)
' Initialize counter variable.
intI = 0
' Redimension array.
ReDim Preserve astrProcNames(intI)
' Store name of first procedure in array.
astrProcNames(intI) = strProcName
' Determine procedure name for each line after declarations.
For lngI = lngCountDecl + 1 To lngCount
' Compare procedure name with ProcOfLine property value.
If strProcName <> mdl.ProcOfLine(lngI, lngR) Then
' Increment counter.
intI = intI + 1
strProcName = mdl.ProcOfLine(lngI, lngR)
ReDim Preserve astrProcNames(intI)
' Assign unique procedure names to array.
astrProcNames(intI) = strProcName
End If
Next lngI
strMsg = "Procedures in module '" & strModuleName & "': " & vbCrLf & vbCrLf
For intI = 0 To UBound(astrProcNames)
strMsg = strMsg & astrProcNames(intI) & vbCrLf
Next intI
' Message box listing all procedures in module.
MsgBox strMsg
End Function
サポートとフィードバック
Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。