Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RFpro.ru: Программирование на Basic / VBA


Хостинг портала RFpro.ru:
Московский хостер
Профессиональный ХОСТИНГ на базе Linux x64 и Windows x64

РАССЫЛКИ ПОРТАЛА RFPRO.RU

Чемпионы рейтинга экспертов в этой рассылке

Гаряка Асмик
Статус: Профессионал
Рейтинг: 4520
∙ повысить рейтинг »
Vasiliy83
Статус: Бакалавр
Рейтинг: 1820
∙ повысить рейтинг »
Megaloman
Статус: Профессионал
Рейтинг: 1464
∙ повысить рейтинг »

/ КОМПЬЮТЕРЫ И ПО / Программирование / Basic/VBA

Номер выпуска:1043
Дата выхода:23.07.2010, 23:30
Администратор рассылки:Калашников О.А., Руководитель
Подписчиков / экспертов:208 / 88
Вопросов / ответов:1 / 1

Вопрос № 179534: Подскажите, как при помощи ВБА узнать количество и имена всех модулей в Нормал дот и количество, и имена всех макросов в каждом модулей. ...



Вопрос № 179534:

Подскажите, как при помощи ВБА узнать количество и имена всех модулей в Нормал дот и количество, и имена всех макросов в каждом модулей.




Отправлен: 18.07.2010, 23:16
Вопрос задал: Ципихович Эндрю, Посетитель
Всего ответов: 1
Страница вопроса »


Отвечает Измалков Эдуард Леонидович, Студент :
Здравствуйте, Ципихович Эндрю.
Для начала необходимо подключить "Microsoft Visual Basic for Application Extensibility" (редактор кода "Tools" - "References...")
и в "Сервис" - "Макрос" - "Безопасность..." - "Надежные издатели" поставить галочку "Доверять доступ к Visual Basic Project"
Данный код нужно также выполнять из шаблона.
Код:
Sub Список_модулей()
Dim cm As CodeModule ' здесь будут сохранятся тексты модулей
Dim vbc As VBComponent ' здесь будут сами модули
Dim n As Long ' для подсчета строк в каждом модуле
Dim cmcount As Long ' для подсчета процедур
Dim vbccount As Integer ' для подсчета модулей
Dim msg As String ' сообщение

vbccount = 0
For Each vbc In ThisDocument.VBProject.VBComponents ' перебор всех модулей
vbccount = vbccount + 1 ' увеличение счетчиков модулей
n = 0: cmcount = 0 ' обнуление счетчиков
msg = msg & "Модуль: " & vbc.Name & vbCr ' добавление в сообщение названия модуля
Set cm = vbc.CodeModule ' выбираем код этого модуля
n = cm.CountOfDeclarationLines + 1 ' перемещяем указатель номера строки на строку, следующую за областью объявлений
Do Until n >= cm.CountOfLines ' проверка, не вышло ли значение n за пределы модуля
cmcount = cmcount + 1 ' увеличение счетчика процедур
msg = msg & " " & n & ". " & cm.ProcOfLine(n, vbext_pk_Proc) & vbCr ' добавление имени процедуры в сообщение
n = n + cm.ProcCountLines(cm.ProcOfLine (n, vbext_pk_Proc), vbext_pk_Proc) ' увеличение указателя на строку на количество строк в процедуре
Loop
msg = msg & "Всего процедур в модуле " & vbc.Name & ": " & cmcount & vbCr & vbCr ' итог по модулю
Next
msg = msg & "Всего модулей в шаблоне " & ThisDocument.Name & ": " & vbccount
MsgBox$ msg
End Sub
Исправлено по просьбе автора ответа.
-----
∙ Отредактировал: Зенченко Константин Николаевич, Модератор
∙ Дата редактирования: 20.07.2010, 20:41 (время московское)

Ответ отправил: Измалков Эдуард Леонидович, Студент
Ответ отправлен: 19.07.2010, 12:13
Номер ответа: 262590

Оценка ответа: 5

Вам помог ответ? Пожалуйста, поблагодарите эксперта за это!
Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 262590 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:

  • Оценить выпуск »
    Нам очень важно Ваше мнение об этом выпуске рассылки!

    Задать вопрос экспертам этой рассылки »

    Скажите "спасибо" эксперту, который помог Вам!

    Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
    на короткий номер 1151 (Россия)

    Номер ответа и конкретный текст СМС указан внизу каждого ответа.

    Полный список номеров »

    * Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи. (полный список тарифов)
    ** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
    *** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.


    © 2001-2010, Портал RFpro.ru, Россия
    Авторское право: ООО "Мастер-Эксперт Про"
    Автор: Калашников О.А. | Программирование: Гладенюк А.Г.
    Хостинг: Компания "Московский хостер"
    Версия системы: 2010.6.16 от 26.05.2010

    В избранное