次の方法で共有


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