Access Tips by pPoy

  
トップへ←Top    QueryへQuery  FormへForm  ReportへReport  Module(Sub)へSub  Module(Function)へFunction  ExcelへExcel  Etc.へEtc.  Word連携へWord

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
この頁のTOPへTop
≪使い方≫

フォームにコマンドボタンを作成し、そこから呼び出してください。
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 できます。
≪注意≫

  • プロシージャ名取得の際 VBE 画面を開く必要がある為、一瞬画面が瞬きます。

  • 指定したモジュールが開いていた場合、無条件に閉じてしまいます。
    コードに変更を加えた場合は、必ず保存してからこの関数を実行してください。

  • 指定したモジュールが無い場合は、長さ零の文字列が返ります

  • 参考用
    モジュール名一覧を DAO で取得する方法は、こちら です。
    モジュール名一覧を AccessObject で取得する方法は、こちら です。
    レポート内のプロシージャ名を取得する関数は、こちら です。
    フォーム内のプロシージャ名を取得する関数は、こちら です。


この頁のTOPへTop

【念の為の注意書きです。】
このページ(下位ページ含む)の全ての物の無断転載を禁止いたします。又、当ページ(下位ページ含む)に記載されていることは、全て自己の責任において実行してください。

☆ 感想をお知らせください (直接ブラウザから送信致します。メールアカウントは不要です。)
  form mail はこちら

Copyright(C) pPoy 2005