マクロのリストの生成(Microsoft Excel)
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の古いメニューインターフェイス用のこのヒントのバージョンは、次の場所にあります。
linkマクロのリストの生成。