У Эндрю есть рабочая тетрадь, в которой много макросов. Он хотел бы создать список всех содержащихся в нем макросов, поэтому он задается вопросом, есть ли способ выполнить задачу.

В 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. Для этого выполните следующие действия:

  1. В редакторе VBA выберите «Ссылки» в меню «Инструменты». Откроется диалоговое окно «Ссылки».

  2. Прокрутите список доступных ссылок и убедитесь, что установлен флажок Microsoft Visual Basic для расширения приложений. (В конце ссылки может быть номер версии, но он должен начинаться с отмеченных слов.) (См. Рисунок 1.)

  3. Закройте диалоговое окно.

Вам также необходимо быстро изменить настройки центра управления безопасностью.

Выполните следующие действия:

  1. Отобразите ссылку: / excelribbon-Displaying_Excels_Developer_Tab [вкладка разработчика] на ленте.

  2. В группе «Код» щелкните инструмент «Безопасность макросов». Excel отображает диалоговое окно «Центр управления безопасностью» с выбранными слева параметрами макроса. (См. Рис. 2.)

  3. Убедитесь, что выбран параметр «Доверять доступ к объектной модели проекта VBA».

  4. Щелкните ОК.

Когда вы запускаете макрос, он добавляет новый лист в вашу книгу, а затем перечисляет имена всех макросов во всех модулях в книге.

_Примечание: _

Если вы хотите узнать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах ExcelTips), я подготовил специальную страницу, содержащую полезную информацию.

link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера].

ExcelTips — ваш источник экономичного обучения Microsoft Excel.

Этот совет (5225) применим к Microsoft Excel 2007, 2010, 2013, 2016, 2019 и Excel в Office 365. Вы можете найти версию этого совета для старого интерфейса меню Excel здесь:

link: / excel-Generating_a_List_of_Macros [Создание списка макросов].