Excelマクロの作成を開始すると、それらのかなりの数をブックに簡単に取り込むことができます。ある時点で、ワークブックにマクロのリストを生成したい場合があります。 Excelには、マクロのリストを作成するための本質的な方法はありません。ただし、マクロを一覧表示するマクロを作成することはできます。 (音の並べ替えは冗長ですよね?)

例として、次のマクロについて考えてみます。このマクロは、ワークブック内のすべてのプロジェクトをステップスルーして、すべてのマクロ名を取得し、それらをワークシートに配置します。

Sub ListMacros()

Dim VBComp As VBComponent     Dim VBCodeMod As CodeModule     Dim oListsheet As Object     Dim StartLine As Long     Dim ProcName As String     Dim iCount As Integer

Application.ScreenUpdating = False     On Error Resume Next     Set oListsheet = ActiveWorkbook.Worksheets.Add     iCount = 1     oListsheet.[a1] = "Macro"



For Each VBComp In ThisWorkbook.VBProject.VBComponents         Set VBCodeMod = ThisWorkbook.VBProject.VBComponents(VBComp.Name).CodeModule         With VBCodeMod             StartLine = .CountOfDeclarationLines + 1             Do Until StartLine >= .CountOfLines                 oListsheet.[a1].Offset(iCount, 0).Value = _                   .ProcOfLine(StartLine, vbext_pk_Proc)

iCount = iCount + 1

StartLine = StartLine + _                   .ProcCountLines(.ProcOfLine(StartLine, _                    vbext_pk_Proc), vbext_pk_Proc)

Loop         End With         Set VBCodeMod = Nothing     Next VBComp

Application.ScreenUpdating = True End Sub

このマクロを使用するには、MicrosoftVBA拡張性参照が設定されていることを確認する必要があります。これを行うには、次の手順に従います。

。 VBAエディターで、[ツール]メニューから[参照]を選択します。 [参照]ダイアログボックスが表示されます。 (図1を参照)

。使用可能な参照のリストをスクロールして、[Microsoft Visual Basic forApplicationsの拡張性]チェックボックスがオンになっていることを確認します。

。ダイアログボックスを閉じます。

マクロを実行すると、新しいワークシートがブックに追加され、ブック内のすべてのモジュール内のすべてのマクロの名前が一覧表示されます。

注:

このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。

link:/ excelribbon-ExcelTipsMacros [ここをクリックして、新しいブラウザタブでその特別なページを開きます]

_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。

このヒント(2715)は、Microsoft Excel 97、2000、2002、および2003に適用されます。Excel(Excel 2007以降)のリボンインターフェイス用のこのヒントのバージョンは、次の場所にあります。

link:/ excelribbon-Generating_a_List_of_Macros [マクロのリストの生成]