Home » エクセルマクロ・Excel VBAの使い方 » マクロのサンプル » プロシージャ一覧を作成するマクロ

プロシージャ一覧を作成するマクロ

対象:Excel2003, Excel2007, Excel2010

VBA(Visual Basic for Applications)で、マクロ・ユーザー定義関数・イベントプロシージャなどをたくさん作り始めると、どのモジュールにどんなプロシージャが含まれているのか管理する必要が出てきます。

そんなとき、簡単にモジュールとプロシージャの一覧を作成するマクロが欲しくなってきます。

[スポンサードリンク]

そのためのマクロをご紹介しておきます。

▼コンポーネントとプロシージャの一覧を作成するマクロ

Sub コンポーネントとプロシージャの一覧を作成する()

 Dim lp_comp As Long
 Dim lp_line As Long
 Dim iR As Long
 Dim prcName As String

 If MsgBox( _
  "コンポーネントとプロシージャの一覧を作成してよければOKボタンをクリックしてください。", _
  vbOKCancel + vbDefaultButton2) = vbCancel Then Exit Sub

 '先頭にワークシートを挿入
 Worksheets.Add Before:=Worksheets(1)

 With ActiveWorkbook
  'プロジェクト内のコンポーネントの数だけループを回す
  For lp_comp = 1 To .VBProject.VBComponents.Count
   'コンポーネント名を書きだす行番号を設定
   iR = iR + 1
   'コンポーネント名の書き出し
   Cells(iR, 1) = .VBProject.VBComponents(lp_comp).Name
    
   With .VBProject.VBComponents(lp_comp).CodeModule
    prcName = ""
    'モジュールに含まれるコードの行数文だけループを回す
    For lp_line = 1 To .CountOfLines
     If prcName <> .ProcOfLine(lp_line, 0) Then
      'プロシージャ名の取得
      prcName = .ProcOfLine(lp_line, 0)
      'プロシージャ名を書きだす行番号を設定
      iR = iR + 1
      'プロシージャ名の書き出し
      Cells(iR, 2) = prcName
     End If
    Next lp_line
   End With
  Next lp_comp
 End With
 
 MsgBox Worksheets(1).Name & "にコンポーネントとプロシージャの一覧を作成しました。"

End Sub

上記のマクロを実行するには、まず、セキュリティの設定変更が必要です。

Excel 2010・2007の場合は、[開発]タブ-[コード]グループ-[マクロのセキュリティ]ボタンなどから表示できる、[セキュリティセンター]ダイアログ-[マクロの設定]タブの[開発者向けのマクロ設定]欄-[VBAプロジェクトオブジェクトモデルへのアクセスを信頼する]チェックボックスをOnにしてください。

プロシージャ一覧を作成するマクロ

Excel 2003の場合は、メニュー[ツール]-[マクロ]-[セキュリティ]から表示できる[セキュリティ]ダイアログ-[信頼できる発行元]タブ-[VBAプロジェクトオブジェクトモデルへのアクセスを信頼する]チェックボックスをOnにしてください。

プロシージャ一覧を作成するマクロ

これらのセキュリティの設定変更を行ってから、上記のマクロを実行すると、新しいシートが先頭に挿入されてA列にコンポーネント名、B列にプロシージャ名の一覧が作成されます。

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » マクロのサンプル » プロシージャ一覧を作成するマクロ

「マクロのサンプル」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.