Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Word
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.12.2011, 18:42   #11
Пименов Александр
Форумчанин
 
Регистрация: 17.11.2010
Сообщений: 222
По умолчанию

Цитата:
Сообщение от Ципихович Эндрю Посмотреть сообщение
>также добавлять модули, классы, формы и т.д.
подскажите пожалуйста код
Код для какой задачи?
Пименов Александр вне форума Ответить с цитированием
Старый 21.12.2011, 18:46   #12
Ципихович Эндрю
Старожил
 
Регистрация: 24.01.2011
Сообщений: 3,061
По умолчанию

добавлять модули, разве важно какие в модули процедуры?
Ципихович Эндрю вне форума Ответить с цитированием
Старый 21.12.2011, 20:02   #13
Пименов Александр
Форумчанин
 
Регистрация: 17.11.2010
Сообщений: 222
По умолчанию

Конечно важно!!!
Вот например макрос проверяющий наличие в Шаблоне Normal наличие модуля NewMacros в который обычно записываются автоматически созданные макросы и выводит их названия списком:
Код:
Public Sub NewMacrosListProcedurs()
Dim NormalProject As VBProject, Component As VBComponent
Dim CodeModule As CodeModule
Dim booNewMacros As Boolean
Dim NameProcedurs As String
    booNewMacros = False 
    Set NormalProject = ActiveDocument.VBProject.VBE.VBProjects("Normal") ' 
    For Each Component In NormalProject.VBComponents
        If Component.Name = "NewMacros" Then
            booNewMacros = True
            Exit For
        Else
            booNewMacros = False
        End If
    Next Component
    If booNewMacros = False Then 
        MsgBox "Модуль NewMacros в шаблоне Normal отсутствует!!!"
        Exit Sub
    End If
    
    Set CodeModule = Component.CodeModule
        If CodeModule.CountOfDeclarationLines <> CodeModule.CountOfLines _
            And CodeModule.CountOfLines > 0 Then
                Start = CodeModule.CountOfDeclarationLines + 1
                k = 0
                NameProcedurs = ""
                    Do
                        If Start > CodeModule.CountOfLines Then Exit Do
                            k = k + 1
                            i = CodeModule.ProcOfLine(Start, vbext_pk_Proc)
                            j = CodeModule.ProcStartLine(i, vbext_pk_Proc)
                            NameProcedurs = NameProcedurs & k & ". " & i & Chr(13)
                            Start = j + CodeModule.ProcCountLines(i, vbext_pk_Proc)
                    Loop
         End If
         MsgBox "Всего процедур: " & k & Chr(13) & NameProcedurs 
End Sub
Вот тестирующий макрос, не забудьте подключить библиотеку Microsoft Visual Basic for Applications Extensibility 5.3
Пример подключения дал caute
Запишите несколько макросов с разными именами в шаблон Normal и запустите мой тестирующий макрос
Пименов Александр вне форума Ответить с цитированием
Старый 21.12.2011, 20:25   #14
Пименов Александр
Форумчанин
 
Регистрация: 17.11.2010
Сообщений: 222
По умолчанию

Вот сам макрос
Вложения
Тип файла: rar ListNewMacrosProcedurs.rar (901 байт, 11 просмотров)
Пименов Александр вне форума Ответить с цитированием
Старый 21.12.2011, 21:01   #15
Ципихович Эндрю
Старожил
 
Регистрация: 24.01.2011
Сообщений: 3,061
По умолчанию

спасибо, чтобы по феншую и с Explicitom дружить на сроке
Start = CodeModule.CountOfDeclarationLines + 1, объявить Start
А ещё можно разбить - модуль, его процедуры, клавиши запуска процедур
Ципихович Эндрю вне форума Ответить с цитированием
Старый 21.12.2011, 21:09   #16
Пименов Александр
Форумчанин
 
Регистрация: 17.11.2010
Сообщений: 222
По умолчанию

Можно много чего сделать, была бы задача и желание......
Пименов Александр вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Объединение макросов Pilot Microsoft Office Excel 13 31.08.2010 18:05
Автозапуск макросов blacklight Microsoft Office Excel 2 01.10.2009 13:33
Создание макросов Женечка2607 Microsoft Office Excel 3 23.04.2009 21:17
Автоматический запуск макросов с листа на котором указан перечень макросов с параметрами и без Neoli Microsoft Office Excel 2 09.03.2009 14:31
Сравнение макросов valerij Microsoft Office Excel 24 09.06.2008 00:57