生成宏列表(Microsoft Excel)
安德鲁的工作簿中包含大量宏。他想生成一个包含所有宏的列表,因此他想知道是否有一种方法可以完成任务。
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
为了使用此宏,必须确保已设置Microsoft VBA可扩展性参考。为此,请按照下列步骤操作:
。在VBA编辑器中,从“工具”菜单中选择“引用”。显示“引用”对话框。
。滚动浏览“可用引用”列表,并确保已选中“ Microsoft Visual Basic应用程序可扩展性”复选框。 (参考文献的末尾可能有版本号,但应以注明的单词开头。)(请参见图1。)
。关闭对话框。
您还需要快速更改“信任中心”设置。
请按照下列步骤操作:
开发人员标签”。
。在“代码”组中,单击“宏安全性”工具。 Excel将显示“信任中心”对话框,并在左侧选择“宏设置”选项。 (请参见图2。)
。确保选中“信任对VBA项目对象模型的访问”选项。
。单击确定。
当您运行宏时,它将一个新的工作表添加到您的工作簿,然后列出该工作簿中所有模块中所有宏的名称。
注意:
如果您想知道如何使用此页面(或_ExcelTips_网站上的任何其他页面)中描述的宏,我准备了一个特殊页面,其中包含有用的信息。
_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。
本技巧(5225)适用于Microsoft Excel 2007、2010、2013、2016、2019和Office 365中的Excel。您可以在此处为Excel的较早菜单界面找到此技巧的版本: