Module.ProcOfLine プロパティ (Access)

ProcOfLine プロパティは、標準モジュールまたはクラス モジュールで指定された行を含むプロシージャの名前を返します。 読み取り専用文字列。

構文

ProcOfLine (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 のサポートおよびフィードバックを参照してください。