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

Или как вариант, как можно получить список макросов и сообственно текст макроса.
...
Рейтинг: 0 / 0
15.06.2006, 14:45:28
    #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
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / О документирование. Чем? / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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