Добрый день!
А можно как-то получить список форм моего проекта?
Макрос
Sub макрос()
Dim project As Object, module As Object
Dim UFNames As Collection
Dim i As Long
'1. Присваиваем vba-проекту активного файла имя "project".
' Чтобы удобно читать и писать код. Далее к vba-проекту будем
' обращаться по имени "project".
Set project = ActiveDocument.VBProject
'2. Запись в коллекцию "UFNames" имён vba-форм.
' Создание коллекции. В эту коллекцию будем записывать имена форм.
Set UFNames = New Collection
' Цикл по всем модулям проекта.
For Each module In project.VBComponents
' Если модуль это UserForm.
If module.Type = 3 Then
UFNames.Add Item:=module.Name
End If
Next
'3. Если в проекте нет vba-форм.
If UFNames.Count = 0 Then
' Сообщение.
MsgBox "В проекте нет форм.", vbInformation
' Завершение макроса.
Exit Sub
End If
'4. Вывод в View - Immediate Window имён форм из коллекции.
For i = 1 To UFNames.Count
Debug.Print UFNames(i)
Next i
End Sub
Вот это код!
Большое спасибо!
Запустил, пишет, что в проекте нет форм. Может, запускать как-то надо по-другому? У меня несколько форм в проекте!
Макросу же надо указать проект. Макросу откуда знать, для какого проекта вам нужна информация.
В пункте 1 укажите, с каким проектом работать.
Может вам это подойдёт. Здесь макрос обращается к проекту, в котором находится запускаемый макрос:
'1. Присваиваем vba-проекту имя "project".
' Чтобы удобно читать и писать код. Далее к vba-проекту будем
' обращаться по имени "project".
Set project = ThisDocument.VBProject
Да, так сработало!
Все отлично, большое спасибо!