Я работаю над макросом помощника, которые изучают функцию списка на данном имени модуля на активной рабочей книге Excel. Исключая: у Меня есть имя модуля "Module1". В этом модуле имеет следующую функцию или sub
Sub Sub1()
End Sub
Sub Sub2()
End Sub
Function Func1()
End Function
Function Func2()
End Function
Существует ли команда или стандартная программа, которая может возвратить список названий Function и Sub?
Вот ссылка на сайт Чипа Пирсона. Это то место, куда я захожу всякий раз, когда мне нужно запрограммировать что-то, что влияет на VBE или использует его. Там есть 2 раздела, которые могут вас заинтересовать. В одном перечислены все модули в проекте. А в другом перечислены все процедуры в модуле. Надеюсь, это поможет.
http://www.cpearson.com/excel/vbe.aspx
Код с сайта (обязательно посетите сайт для получения инструкций по добавлению ссылки на библиотеку объектов VBIDE:
Этот код перечислит все процедуры в модуле Module1, начиная перечисление с ячейки A1.
Sub ListProcedures()
Dim VBProj As VBIDE.VBProject
Dim VBComp As VBIDE.VBComponent
Dim CodeMod As VBIDE.CodeModule
Dim LineNum As Long
Dim NumLines As Long
Dim WS As Worksheet
Dim Rng As Range
Dim ProcName As String
Dim ProcKind As VBIDE.vbext_ProcKind
Set VBProj = ActiveWorkbook.VBProject
Set VBComp = VBProj.VBComponents("Module1")
Set CodeMod = VBComp.CodeModule
Set WS = ActiveWorkbook.Worksheets("Sheet1")
Set Rng = WS.Range("A1")
With CodeMod
LineNum = .CountOfDeclarationLines + 1
Do Until LineNum >= .CountOfLines
ProcName = .ProcOfLine(LineNum, ProcKind)
Rng.Value = ProcName
Rng(1, 2).Value = ProcKindString(ProcKind)
LineNum = .ProcStartLine(ProcName, ProcKind) + _
.ProcCountLines(ProcName, ProcKind) + 1
Set Rng = Rng(2, 1)
Loop
End With
End Sub
Function ProcKindString(ProcKind As VBIDE.vbext_ProcKind) As String
Select Case ProcKind
Case vbext_pk_Get
ProcKindString = "Property Get"
Case vbext_pk_Let
ProcKindString = "Property Let"
Case vbext_pk_Set
ProcKindString = "Property Set"
Case vbext_pk_Proc
ProcKindString = "Sub Or Function"
Case Else
ProcKindString = "Unknown Type: " & CStr(ProcKind)
End Select
End Function
Есть также бесплатный инструмент под названием "MZ-Tools". Установите его в качестве дополнения, он нумерует ваши строки кода, генерирует стандартный код управления ошибками, проверяет неиспользуемые переменные, упорядочивает ваши функции и подфункции и ... документирует ваш код, автоматически генерируя список ваших процедур с параметрами, комментариями и т.д...... Отличный инструмент!