| Access Tips by pPoy |
| Module | 標準モジュール内のプロシージャ名を取得する関数 (Ac97,Ac2000,Ac2002) |
Access の標準モジュール名の一覧は、DAO や AccessObject を使用して表示することができます。 こちら や こちら。 ただし、その中のプロシージャ名一覧のみを表示する機能はありません。 以下は、指定した標準モジュール内のプロシージャ名のみを取り出して表示する関数です。 以下のコードを標準モジュールに貼り付けてください。 |
|
|---|---|---|---|
Public Function AllProcName(ByVal strModuleName As String) As String
'標準モジュール内のプロシージャ名一覧を取得。 2005/03/12 pPoy
On Error GoTo procErr
Dim mdl As Module 'Moduleオブジェクト
Dim lngDecCnt As Long '宣言セクションの行数
Dim strName As String 'プロシージャ名比較用
Dim strProcName As String '全プロシージャ名
Dim lngR As Long 'プロシージャの種類
Dim i As Long 'カウンタ
'Moduleオブジェクト取得
DoCmd.OpenModule strModuleName
Application.VBE.MainWindow.Visible = False
Set mdl = Modules(strModuleName)
'宣言セクションの行数格納
lngDecCnt = mdl.CountOfDeclarationLines
'最初のプロシージャ名格納
strName = mdl.ProcOfLine(lngDecCnt + 1, lngR)
strProcName = strName & vbNewLine
'宣言セクションの次行から最終行までループ
For i = lngDecCnt + 1 To mdl.CountOfLines
'新規プロシージャ名取得
If strName <> mdl.ProcOfLine(i, lngR) Then
strName = mdl.ProcOfLine(i, lngR)
'プロシージャ名追加
strProcName = strProcName & strName & vbNewLine
End If
Next i
exit_AllProcName:
'終了処理
DoCmd.Close acModule, strModuleName, acSaveNo
Set mdl = Nothing
AllProcName = strProcName
Exit Function
procErr:
'名前が見つからない場合
AllProcName = ""
Resume exit_AllProcName
End Function
| |||
|
≪使い方≫ フォームにコマンドボタンを作成し、そこから呼び出してください。
Private Sub cmd_ProcName_Click()
Dim strName As String
Const mdlName = "標準モジュール名"
strName = AllProcName(mdlName)
If strName <> "" Then
MsgBox strName, vbOKOnly, "「" & mdlName & "」 内のプロシージャ名一覧"
Else
MsgBox "プロシージャはみつかりませんでした。", vbOKOnly
End If
End Sub
|
|
指定したモジュールに書かれているプロシージャ名の一覧が、メッセージボックスに表示されます。 勿論通常のコードの中からも Call できます。 |
|
≪注意≫ |
☆ 感想をお知らせください (直接ブラウザから送信致します。メールアカウントは不要です。)
form mail はこちら
Copyright(C) pPoy 2005