All Forums
 Категория Visio
 Форум Вопросы и ответы
 Проблема с Open/OpenEx
Author Previous Topic Topic Next 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
И вообще, после загрузки документа все переменные модуля (в котом находится также вышеописаная процедура) как бы сбрасываются, и потом оказывается, что они не определены. Кто-нибудь может объяснить такое поведение?
Go to Top of Page

Евгений

88 Posts

Posted - 02/09/2005 :  17:36:49
Оказывается, это из-за флага visOpenDisableMacros. Как обойти проблему, т.е. чтобы макросы в открываемом документе были без спрашивания запрещены (или разрешены, без разницы), а в основном документе все исполнялось дальше?
Go to Top of Page

Tumanov

Russia
1198 Posts

Posted - 02/09/2005 :  19:57:22
Получается, что блокируя макросы в загружаемом документе, Вы тем самым блокируете их и в рабочем документе. Значит для продолжения работы Вашего макроса те макросы тоже должны быть разрешены. Это делается либо снижением уровня безопасности, либо путем подписывания проекта VBA в открываемом документе. Если на вопрос о разрешении макросов при открытии ответить утвердительно, то все тоже работает, но приходится лишний раз по кнопке щелкнуть.
Go to Top of Page

Евгений

88 Posts

Posted - 02/09/2005 :  23:00:45
А как сделать, чтобы оно само щелкнулось? Ведь это не я буду использовать этот прибор, а неизвестно кто, и мало ли что он там щелкнет... Хотелось бы как можно меньше глюкогенерирующих возможностей.
Go to Top of Page

immortal

Russia
391 Posts

Posted - 02/10/2005 :  08:16:16  Visit immortal's Homepage
используйте add-in, он не является макросом и пользователь может его отключить лишь через соответствующее меню, которое в прочем наверно можно отключить из add-inа, тамже установить запрет на макросы,
add-on не подходит по нескольким причинам, во первых он не загружается вместе с визио, во вторых визио считает адд-оны макросами и установки тоже распостроняются на них

визио 2003 форэвер

...а вобще-то я белый и пушистый.
Go to Top of Page
  Previous Topic Topic Next Topic  
Данный сайт является архивом форума visio.artberg.ru, который был закрыт в связи с переходом на новую платформу visio.getbb.ru
Все материалы доступны только для чтения! Если у вас появились вопросы, или вы хотите что-то обсудить, связанное с Visio, обращайтесь на новый форум!
Архив был создан благодаря совместным усилиям Генадия Туманова @Tumanov (visio.artberg.ru), Александра ака @Surrogate (visio.getbb.ru), и Николая Белых @nbelyh (unmanagedvisio.com)