Author |
Topic |
|
Евгений
88 Posts |
Posted - 02/09/2005 : 13:54:26
|
У меня такая процедура:
Public Sub Load_Document()
MsgBox "Loading document"
FileName = OpenDialog.getFileName
If FileName <> "Nothing selected!" Then
lbStatus.Text = "Loading..."
Set mainDoc = Application.Documents.OpenEx(FileName, visOpenDontList Or visOpenMinimized Or visOpenMacrosDisabled Or visOpenCopy Or visOpenNoWorkspace)
Initialize
documentLoaded = True
lbStatus.Text = "Loaded: " & FileName
lbStatus.Section(visSectionCharacter).Row(0).Cell(visCharacterColor).Formula = 10
'enable all buttons
btValidate.Object.Enabled = True
End If
End Sub При ее исполнении вижио доходит до открытия документа, успешно его открывает - и все, что далее, не исполняется, в том числе Initialize() на 100% не выполняется. Почему, в чем дело, и как это исправить? |
|
Евгений
88 Posts |
Posted - 02/09/2005 : 14:41:57
|
И вообще, после загрузки документа все переменные модуля (в котом находится также вышеописаная процедура) как бы сбрасываются, и потом оказывается, что они не определены. Кто-нибудь может объяснить такое поведение? |
|
|
Евгений
88 Posts |
Posted - 02/09/2005 : 17:36:49
|
Оказывается, это из-за флага visOpenDisableMacros. Как обойти проблему, т.е. чтобы макросы в открываемом документе были без спрашивания запрещены (или разрешены, без разницы), а в основном документе все исполнялось дальше? |
|
|
Tumanov
Russia
1198 Posts |
Posted - 02/09/2005 : 19:57:22
|
Получается, что блокируя макросы в загружаемом документе, Вы тем самым блокируете их и в рабочем документе. Значит для продолжения работы Вашего макроса те макросы тоже должны быть разрешены. Это делается либо снижением уровня безопасности, либо путем подписывания проекта VBA в открываемом документе. Если на вопрос о разрешении макросов при открытии ответить утвердительно, то все тоже работает, но приходится лишний раз по кнопке щелкнуть. |
|
|
Евгений
88 Posts |
Posted - 02/09/2005 : 23:00:45
|
А как сделать, чтобы оно само щелкнулось? Ведь это не я буду использовать этот прибор, а неизвестно кто, и мало ли что он там щелкнет... Хотелось бы как можно меньше глюкогенерирующих возможностей. |
|
|
immortal
Russia
391 Posts |
Posted - 02/10/2005 : 08:16:16
|
используйте add-in, он не является макросом и пользователь может его отключить лишь через соответствующее меню, которое в прочем наверно можно отключить из add-inа, тамже установить запрет на макросы, add-on не подходит по нескольким причинам, во первых он не загружается вместе с визио, во вторых визио считает адд-оны макросами и установки тоже распостроняются на них
визио 2003 форэвер
...а вобще-то я белый и пушистый. |
|
|
|
Topic |
|
|
|