Andrewには、多数のマクロが含まれているワークブックがあります。彼は、そこに含まれるすべてのマクロのリストを生成したいので、タスクを実行する方法があるかどうか疑問に思います。

Excelには、マクロのリストを作成するための本質的な方法はありません。ただし、マクロを一覧表示するマクロを作成することはできます。 (音の並べ替えは冗長ですよね?)

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

Sub ListMacros()

Dim VBComp As VBComponent     Dim wsTarget As Worksheet     Dim StartLine As Long     Dim iRow As Integer

Application.ScreenUpdating = False

Set wsTarget = Worksheets.Add     wsTarget.Range("A1") = "Macro"

wsTarget.Range("A1").Font.Bold = True     With wsTarget.Range("A1").Borders(xlEdgeBottom)

.LineStyle = xlContinuous         .ColorIndex = 0         .TintAndShade = 0         .Weight = xlThin     End With

iRow = 2

For Each VBComp In ThisWorkbook.VBProject.VBComponents         With VBComp.CodeModule             StartLine = .CountOfDeclarationLines + 1             Do Until StartLine >= .CountOfLines                 wsTarget.Cells(iRow, 1) = _                   .ProcOfLine(StartLine, vbext_pk_Proc)

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

Loop         End With     Next VBComp

wsTarget.Range("A1").EntireColumn.AutoFit     Application.ScreenUpdating = True End Sub

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

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

。使用可能な参照のリストをスクロールして、[Microsoft Visual Basic forApplicationsの拡張性]チェックボックスがオンになっていることを確認します。 (リファレンスの最後にバージョン番号がある場合がありますが、注記されている単語で始まる必要があります。)(図1を参照)

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

また、セキュリティセンターの設定をすばやく変更する必要があります。

次の手順に従ってください:

。リボンの linkDevelopertabを表示します。

。 [コード]グループで、[マクロセキュリティ]ツールをクリックします。 Excelは、左側でマクロ設定オプションが選択された[セキュリティセンター]ダイアログボックスを表示します。 (図2を参照)

。 [VBAプロジェクトオブジェクトモデルへのアクセスを信頼する]オプションが選択されていることを確認します。

。 [OK]をクリックします。

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

注:

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

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

このヒント(5225)は、Microsoft Excel 2007、2010、2013、2016、2019、およびOffice 365のExcelに適用されます。Excelの古いメニューインターフェイス用のこのヒントのバージョンは、次の場所にあります。