powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / О документирование. Чем?
2 сообщений из 2, страница 1 из 1
О документирование. Чем?
    #33792072
Sav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Sav
Гость
Интересует программа (макрос) Add для документирвания макросов (Excel). Построения дерева процедур функций.

Или как вариант, как можно получить список макросов и сообственно текст макроса.
...
Рейтинг: 0 / 0
О документирование. Чем?
    #33793094
Ashton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Конечно, самый простой способ, посмотреть список всех макросов.

Код: plaintext
1.
2.
Public Sub MacrosList()
    Application.Dialogs(xlDialogRun).Show
End Sub

Второй вариант.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
Public Sub MacrosList2()
    Dim vbc As VBComponent
    Dim lngStart As Long
    Dim strMsg As String
    Dim strProcName As String
    
    For Each vbc In ThisWorkbook.VBProject.VBComponents
        With vbc.CodeModule
            If vbc.Type = vbext_ct_StdModule Then
                lngStart = .CountOfDeclarationLines +  1 
                
                Do Until lngStart >= .CountOfLines
                    strMsg = strMsg & .ProcOfLine(lngStart, _
                      vbext_pk_Proc) & vbCr
                    lngStart = lngStart + .ProcCountLines( _
                      .ProcOfLine(lngStart, vbext_pk_Proc), vbext_pk_Proc)
                Loop
            End If
        End With
    Next vbc
    
    MsgBox strMsg
End Sub

Получить код макроса.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Public Sub GetMacroCode()
    Dim cm As CodeModule
    Dim lngStart As Long
    Dim lngCount As Long
    
    Set cm = ThisWorkbook.VBProject. _
      VBComponents("Module2").CodeModule
    
    lngStart = cm.ProcStartLine("MacrosList2", vbext_pk_Proc)
    lngCount = cm.ProcCountLines("MacrosList2", vbext_pk_Proc)
    
    MsgBox cm.Lines(lngStart, lngCount)
    
    Set cm = Nothing
End Sub
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / О документирование. Чем?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]