Доработка макроса TurboMD для выгрузки/загрузки таблиц MXL:
'Собственно макрос для выгрузки активного окна
Sub UnloadCurrentWnd()
Set w = Windows.ActiveWnd
If w Is Nothing Then
MsgBox "Нет активного окна", vbOKOnly, "TurboMD"
Exit Sub
End If
Set d = w.Document
If d.ID < 2 Then
MsgBox "Окно ни форма, ни модуль", vbOKOnly, "TurboMD"
Exit Sub
End If
If d = docText Then ' Просто модуль
UnloadDoc d
Else
If d = docWorkBook Then ' Форма
'БСА - выгрузим текущую таблицу MXL
IF d.ActivePage > 1 THEN ' Таблица
'определим имя закладки
lMXLName = d.Page(d.ActivePage).Name
lastdec = InStrRev(lMXLName, ".")
lMXLName = Right(lMXLName, Len(lMXLName) - lastdec)
If MsgBox("Выгрузить таблицу <"+lMXLName+">?", vbQuestion + vbYesNo, "TurboMD") = vbYes Then
UnloadDoc d.Page(d.ActivePage)
exit sub
End If
END IF
'БСА - выгрузили текущую таблицу MXL
If MsgBox("Выгрузить форму?", vbQuestion + vbYesNo, "TurboMD") = vbYes Then
UnloadDoc d.Page(0) ' Выгружаем диалог
End If
'ModuleText = d.Page(1).text
'For i = 2 To d.CountPages - 1
'UnloadMXL d.Page(i), ModuleText
'UnloadDoc d.Page(i)
'Next
If MsgBox("Выгрузить модуль?", vbQuestion + vbYesNo, "TurboMD") = vbYes Then
'strOldText = d.Page(1).text
'd.Page(1).text = ModuleText
UnloadDoc d.Page(1) ' Выгружаем модуль
'd.Page(1).text = strOldText
End If
End If
End If
End Sub
Пристегиваю также свой вариант доработки TurboMD (только часть макроса, которая дорабатывалась - 2 процедуры). Его отличия от находящегося в репозитарии:
1. Выгрузка ТОЛЬКО текущего модуля/формы/таблицы (в обычном варианте для форм ВСЕГДА запрашивается выгрузка формы и модуля).
2. Запрос на выгрузку унифицирован: сначал ВСЕГДА выдается запрос на выгрузку (для модулей проведения документов вообще не выдался).
3. Добавлена выгрузка таблиц MXL.
4. Добавлена выгрузка глобального модуля. Мне это нужно было по той лишь причине, что я не пользуюсь gcomp-ом.
Такой вариант TurboMD.prm в связке с WinMerg-ем (
http://winmerge.org/ - достойный конкурент KDiff, позволяющий при сравнении править сравниваемые файлы
) позволяет мне оперативной вносить ВСЕ возможные изменения (за исключением тех, которые касаются структуры MD).
Правда "за бортом" остаются интерфейсы и права пользователя.
Кстати, если бы TurboMD позволял (опционально) выгружать диалоги форм в формате gcomp-а, это было бы вообще сказочно!