В microsoft word не установлено доверие к проектам visual basic
Что происходит ?
При открытии книги, проверяются текущие параметры.
Если параметры безопастности не те, которые нужны,
то генерируется файл на рабочем столе, запускается и выжидает 2 секунды
пока не закроется текущая книга (сама книга в этот момент, очень поспешно закроется).
В скрипте производится запись нужных параметров
и запуск книги.
После того как книга вновь проверила реестр, и условия соблюдены,
то файл со скриптом просто удаляется, визуально это можно не заметить,
если в самом скрипте убрать (закоментировать) MsgBox (который сообщяет об успехе)
Вот этот код: его нужно поместить в модуль "ЭтаКнига"
После чего можно получать программный доступ, например надо вам календарь ? -пожалуйста
для этого не нужно открывать и устанавливать флажки:
Вот еще лучше, теперь ожидание сниженно до 1 секунды, убрал MsgBox из скрипта
и сделал скрипт компактнее, внимательно прозондировал эту тему,
действительно, в реестре больше ничего менять не надо !
Еще не на всех версиях тестировал, так-что если появяться замечания сообщите пожалуйста здесь.
Меняем доверие к проектам VBA и уровень безопасности
есть код он делает: При запуске Эксел считывает данные из реестра, т.е. 1. запускаем Эксель.
Как понизить уровень безопасности
Подскажите пожалуйста, как победить следущую ситуацию. На сетевом ресурсе есть аксессовская база.
Уровень Безопасности
Подскажите пожалуйста как программно в VBA Word сменить уровень безопасности для автозапуска.
Уровень безопасности в Word и Excel
Как при открытии файла ставить низкий уровень безопасности, а при закрытии снова ставить средний?
Естественно это будет работать, если уровень на момент открытия книги не слишком высокий
и поддержка VB-скриптов имеется, (обычно такое у всех есть)
иначе Excel ругнётся, и ничего вообще не запустит (сообщит что макросы отключенны)
Вот пустая книга, с одной процедурой
Вот еще момент, 20 строчку из второго примера тоже можно убрать
еще раз протестировал, она не нужна (.WriteLine "WScript.Sleep 1000")
Тестировал я так:
экспортировал папку реестра с ключем ..\Excel\Security\ с "плохими" настройками
и переодически запускал, так я сократил массу времени
Полностью довести до совершенства можно только код из 3 строчек,
а у меня код который генерирует другой код, и который должен поковыряться в реестре
и обратно запустить программу которая его породила а затем, мамка-программа второй код уничтожает, это на словах.. на деле посложнее
Кстати, забыл скинуть то что должно быть в скрипте:
И вот итоговый код для книги, все работает исправно,
единственные сомнения это по версиям, версии выше 2003 с прибабахами, я не уверен как они будут работать
[продолжение следует, сейчас еще внесу исправлений для других офисов]
Добавлено через 2 часа 48 минут
Окончательный вариант !
протестировал на других версиях, еще раз все пере-проверил и вот:
Код для модуля книги, (обычно с названием "ЭтаКнига")
И вот как красиво это смотриться в скрипте:
три кавычки нужны были для того, чтобы система увидела путь в кавычках .Run "C:\.. и тд
остальные параметры знать не обязательно
для того чтобы убедиться как всё работает
можно запустить макрос с названием Test (он в модуле книги)
Это просто к тому, что нет 100 % гарантии срабатывания. Мне в итоге было тупо не открыть файл, он сразу же запиливался и вываливалась ошибка.
Может добавить в код проверку ассоциации и восстановление на всякий?
Night Ranger, еще сможете подсказать, как открыть файл с кодом снова, после исполнения кода?
Внимание! Выполнение некоторых из описанных ниже рекомендаций может потребовать квалификации и полномочий системного администратора.
Если ни один из вышеперечисленных вариантов не описывает вашу ситуацию, то следуйте приведённым ниже инструкциям.
Если какие-либо из рекомендаций по решению возникшей проблемы, приведенных выше в данной статье, непонятны или по каким-то причинам не получилось их применить, для получения помощи в их выполнении необходимо обратиться к партнеру оказывающему техническую поддержку (ТП) вашей организации 1) . Его контакты вы можете найти в договоре на приобретение лицензий или на оказание технической поддержки.
Для создания письма:
Если партнером по ТП является другая организация - кликните по данной ссылке для открытия проекта письма в почтовом клиенте 3) или, если у Вас не настроен почтовый клиент, создайте письмо самостоятельно, в адресное поле письма введите контактный адрес службы техподдержки партнера.
Приложите к письму указанную ниже информацию и отправьте его.
К письму требуется приложить:
Пример, на котором воспроизводится проблема (как подготовить и передать нам пример, см. в статье Создание тестового примера для воспроизведения проблемы в работе отчётов) 4) .
Архив с логами сессии Business Studio, во время которой удалось воспроизвести проблему (из папки [Мои] Документы\Business Studio <версия>\<дата_и_время_запуска_bs> под учетной записью пользователя, который воспроизвел проблему).
Информацию из окна, вызываемого командой Главного меню Business Studio "Помощь -> Информация о системе" на компьютере, где возникает проблема.
2) , 3) Проект письма будет содержать ссылку на данную статью системы справки, эта информация требуется службе техподдержки для анализа проблемы и сокращает общее время её решения. В случае, если Вы создаете обращение не кликом по указанной выше ссылке, пожалуйста, скопируйте в него ссылку из адресной строки веб-браузера вручную.
Воспользуйтесь инструкциями из того раздела, название которого лучше описывает возникшую ситуацию.
Вопрос по формированию HTML-публикации и работе с ней
Если по указанным ссылкам отсутствует информация по возникшему вопросу, следуйте приведенным ниже инструкциям.
Для получения ответа на вопрос необходимо обратиться к партнеру оказывающему техническую поддержку (ТП) вашей организации. Его контакты вы можете найти в договоре на приобретение лицензий или на оказание технической поддержки. Для создания письма:
Если партнером по ТП является другая организация - кликните по данной ссылке для открытия проекта письма в почтовом клиенте 2) или, если у Вас не настроен почтовый клиент, создайте письмо самостоятельно, в адресное поле письма введите контактный адрес службы техподдержки партнера.
Приложите к письму указанную ниже информацию и отправьте его.
К письму требуется приложить:
Информацию из окна, вызываемого командой Главного меню Business Studio "Помощь -> Информация о системе" на компьютере, где возникает ситуация, вызвавшая вопросы.
Проблема в работе HTML-публикации
Попробуйте перезагрузить компьютер. Если перезагрузка не помогла, то необходимо провести предварительный анализ проблемы. Он состоит из нескольких этапов:
Соответствует ли компьютер минимальным системным требованиям?
Если нет, то используйте компьютер соответствующий минимальным системным требованиям (см. Системные требования).
Запущено ли на компьютере приложение Business Studio Portal Server?
Если да, то его нужно закрыть, поскольку Business Studio Portal Server (см. Business Studio Portal Server) и HTML -публикация, запущенные на одном компьютере, могут конфликтовать.
Включены ли в настройках Visio обращения в интернет?
Убедитесь, что отключены обращения в интернет у Visio и отключите их, если эта опция активна (см. п.2 Отключение обращений в интернет).
После выполнения приведённых выше инструкций нужно переформировать публикацию и проверить, решилась ли проблема.
Если ничего из вышеперечисленного не помогло, то выберите тот пункт, который лучше описывает сложившуюся ситуацию:
1) , 2) Проект письма будет содержать ссылку на данную статью системы справки, эта информация требуется службе техподдержки для анализа проблемы и сокращает общее время её решения. В случае, если Вы создаете обращение не кликом по указанной выше ссылке, пожалуйста, скопируйте в него ссылку из адресной строки веб-браузера вручную.
необходимо явно разрешить доступ к системе проектов Visual Basic для приложений (VBA) в Microsoft Office, прежде чем можно будет создать или открыть Инструменты Visual Studio для Microsoft Office системного проекта.
Некоторые макровирусы Microsoft Office пытаются автоматизировать систему проектов Visual Basic для приложений как способ своего распространения. Разрешая доступ к системе проектов Visual Basic для приложений, вы отключаете средство защиты, которое позволяет предотвратить распространение макровирусов. Тем не менее, остаются стандартные средства обеспечения безопасности макросов: уровень безопасности макросов и список надежных издателей, поддерживаемый для приложений Office, помогут выявить выполнение макросов на компьютере.
Это касается только компьютера разработки. на компьютерах конечных пользователей этот параметр не требуется включать для запуска решений Office.
Важно отметить, что отключение доступа к системе проектов Visual Basic для приложений само по себе не защитит вас от вирусов, оно просто помогает предотвратить распространение некоторых вирусов в другие документы в случае заражения компьютера макровирусом. Эта возможность отключена по умолчанию, что обеспечивает дополнительный уровень защиты компьютера. Однако ее включение не делает ваш компьютер более подверженным атакам, если вы выполняете рекомендации по обеспечению безопасности.
лучшей защитой от Office макровирусов является запуск Office на высоком или очень высоком уровне безопасности, чтобы доверять макросам только из проверенных, известных источников и оставаться в курсе обновлений безопасности и сканеров вирусов.
можно включить или отключить параметр доверять доступ к Visual Basic Project вручную.
При появлении ошибок VBA или COM можно восстановить установку Office.
Интересуетесь разработкой решений, расширяющих возможности Office на нескольких платформах? Ознакомьтесь с новой моделью надстроек Office. Надстройки Office имеют небольшой объем по сравнению с надстройками и решениями VSTO, и их можно создавать с помощью практически любой технологии веб-программирования, такой как HTML5, JavaScript, CSS3 и XML.
включение и отключение доступа к Visual Basic проектам
Перейдите на вкладку Файл .
Щелкните Параметры.
щелкните центр управления безопасностью, а затем щелкните центр управления безопасностью Параметры.
в центре управления безопасностью щелкните макрос Параметры.
установите или снимите флажок доверять доступ к объектной модели проекта VBA , чтобы включить или отключить доступ к Visual Basic проектам.
включение и отключение доступа к Visual Basic проектам с помощью системы Microsoft Office 2007
в меню сервис в Word или Excel укажите пункт макрос, а затем выберите пункт безопасность.
В диалоговом окне Безопасность перейдите на вкладку Доверенные издатели .
выберите, чтобы включить или снять флажок отключить, доверять доступ к Visual Basic Project.
Настройка уровня безопасности макросов в Office
Перейдите на вкладку Файл .
Щелкните Параметры.
щелкните центр управления безопасностью, а затем щелкните центр управления безопасностью Параметры.
в центре управления безопасностью щелкните макрос Параметры.
в разделе Параметры макросов выберите нужный параметр.
настройка уровня безопасности макросов Office с помощью системы Microsoft Office 2007
в меню сервис в Word или Excel укажите пункт макрос, а затем выберите пункт безопасность.
На вкладке уровень безопасности выберите нужный параметр.
На вкладке уровень безопасности содержатся сведения о каждом уровне. Дополнительные сведения см. в разделе "Уровни безопасности макросов" справки Microsoft Office.
Установка VBA в выпуске 2007 системы Microsoft Office
На панели управления запустите элемент Установка и удаление программ или программы и компоненты.
выберите Office в списке установленные программы .
Выберите Добавить или удалить компоненты, а затем нажмите кнопку продолжить.
Выберите пункт Расширенная настройка приложений, а затем нажмите кнопку Далее.
разверните Office общие компоненты в списке выберите параметры обновления для приложений и средств .
откройте раскрывающееся меню рядом с Visual Basic для приложений, а затем выберите выполнить из Мой компьютер.
Восстановление установки Office
На панели управления запустите элемент Установка и удаление программ или программы и компоненты.
выберите версию Office в списке установленные программы .
Выберите переустановить или восстановить, а затем нажмите кнопку Далее.
выберите обнаружение и исправление ошибок в Office установки, а затем нажмите кнопку установить.
Вы можете включить Visual Basic для приложений код (VBA) или запустить надстройки COM только в документе с поддержкой макроса, в таблице или презентации. Вы можете создать файл с поддержкой макроса, сэкономив документы с расширением .docm или dotm в Word; расширение .xlsm, xltm или .xlam в Excel; или расширение .pptm, .potm, .ppam или .ppsm в PowerPoint.
Чтобы установить и запустить неподписаную надстройку COM, надстройки Require Application, которые должны быть подписаны доверенными Publisher и отключить все параметры надстройки приложений, должны быть очищены на вкладке Надстройки в Центре доверия. Чтобы открыть вкладку надстройки> , выберите вкладку File, а затем выберите центр CenterTrust > OptionsTrust > Параметры Add-ins.
Чтобы запустить все макросы VBA, включая те, которые не имеют цифровой подписи, следует выбрать параметр Включить все макросы в центре управления безопасностью. Чтобы просмотреть параметры Параметры Макроса, выберите вкладку File и выберите центр CenterTrust > OptionsTrust > Параметры > Macros Параметры. Из соображений безопасности настоятельно рекомендуется делать это только в тестовой среде. После завершения тестирования установите для параметров исходные значения.
На вкладке Макро Параметры Центра доверия установите параметры отключения всех макрос без уведомления, отключить все макрос с уведомлением или отключить все макрос, за исключением цифровых макрос . Отключить макрос, сэкономив документ Word, Excel таблицу или PowerPoint как файлы с отключенными макросами (.docm, Xlsm или .pptm соответственно). Установите или отключите доступ к объектной модели проекта VBA с вкладки Macro Параметры путем выбора или очистки доступа Trust к объектной модели проекта VBA.
Когда надстройки COM и надстройки для отдельных приложений включены и загружены, их элементы управления отображаются на вкладке Надстройки на ленте пользовательского интерфейса Office Fluent.
Список доступных надстройок см. на вкладке Надстройки в Центре доверия. На той же вкладке включите, отключите, добавьте или удалите надстройки COM или Word, выбрав тип надстройки в окне drop-down рядом с меткой Manage , а затем выберите кнопку Go .
Изменение Windows реестра
Изменение Windows реестра любым способом, будь то в редакторе реестра или программным способом, всегда несет в себе определенный риск. Неправильное изменение может привести к серьезным проблемам, для устранения которых может потребоваться переустановка операционной системы. Перед внесением изменений в реестр компьютера всегда имеется хорошая практика. Если вы работаете в Microsoft Windows NT, Windows 2000, Windows XP или Windows Server 2003, необходимо также обновить диск аварийного ремонта (ERD).
Сведения о том, как изменить реестр, см. в разделе Справка об изменении ключей и значений в редакторе реестра (Regedit.exe) или в разделах Добавление и удаление сведений в разделах Сведения о реестре и изменении реестра в редакторе реестра (Regedt32.exe).
Сделайте Windows вызовы функции API
Перед вызовом Windows интерфейса программирования приложений (API) необходимо понять, как аргументы и типы данных обрабатываются Windows DLLs API. Неправильный вызов функций Windows может привести к сбоям в виде недопустимых страниц и другим непредвиденным событиям. Дополнительные сведения о вызове Windows функций см. в разделе "API Windows aPI и другие Dynamic-Link библиотеки" в Office документации разработчика 2000 г.
Цифровой код подписи
Цифровое подписывание документа — это процесс нанесения метки на документ, чтобы его получатель мог быть уверен, что документ поступил из определенного источника, и мог определить, изменялось ли содержимое документа после его подписания. Кроме того, цифровые подписи можно использовать для пометки документа как доступного только для чтения, чтобы защитить его подлинность и целостность.
Кроме цифровых подписей, документы также могут содержать встроенные подписи, которые видны в содержимом документа. Отправитель документа может создать неподписанные документы со строками подписи, которые могут быть переданы получателю для подписания. Получатель открывает документ, находит строку подписи, подписывает документ и возвращает его отправителю.
Базовая процедура по заданию цифровой подписи для документа включает в себя следующие шаги:
- Отправитель документа сжимает содержимое до нескольких строк, используя процесс "хэширования." Такое сжатое содержимое называется хэшем. Хэширование выполняется специально предназначенным для этого программным обеспечением.
- После этого отправитель документа шифрует этот хэш с использованием закрытого ключа, полученного у заверителя подписи. В результате получается цифровая подпись.
- Отправитель прикрепляет цифровую подпись к документу. Все данные, которые были хэшированы, теперь подписаны, а подпись была зашифрована и прикреплена к документу.
- После этого отправитель отправляет документ получателю.
- Получатель сначала расшифровывает документ, используя полученный от отправителя открытый ключ. При этом подпись преобразуется обратно в хэш. Если этот процесс выполняется, значит документ был подписан отправителем.
- Получатель с использованием программного обеспечения для работы с цифровыми подписями хэширует документ и сравнивает этот хэш с хэшем, полученным от отправителя. Если они совпадают, значит содержимое документа не изменялось с момента отправки его отправителем.
Впервые цифровые подписи стали доступны клиентам в Office XP. Однако в Office 2007 были добавлены возможности, облегчающие процесс подписания, позволяющие подписывать документы, чтобы сделать их доступными только для чтения, и добавлять в документ встроенные строки подписи. Office пользователи могут выполнять эти задачи Office пользовательского интерфейса, доступного на вкладке File.
В Office 2007 также были представлены элементы, которые упростили программную обработку встроенных подписей и цифровых подписей.
Развертывание управляемых надстройок com в Office безопасности
Чтобы соответствовать Office безопасности, управляемые надстройки COM (надстройки COM, нацеленные на общее время выполнения языка) должны быть подписаны в цифровом формате, а параметры безопасности пользователей должны быть установлены в центре доверия Office, чтобы разрешить надстройки в Office приложениях. Кроме того, вам следует встроить в свой проект управляемой надстройки COM небольшой неуправляемый прокси-сервер, также называемый оболочкой совместимости, чтобы предотвратить возникновение непредвиденных предупреждений о безопасности.
Автоматизация редактора Visual Basic
Выбор этого параметра создает потенциальную угрозу безопасности. Рекомендуется установить флажок Доверять доступ к объектной модели проектов VBA только на время работы макроса, осуществляющего доступ к объектной модели Visual Basic. После завершения работы этого макроса убедитесь, что флажок Доверять доступ к объектной модели проектов VBA снят.
Использование паролей
Избегайте использования в приложениях жестко заданных паролей. Если в процедуре требуется пароль, запросите пароль у пользователя, сохраните его в переменной, а затем используйте эту переменную в коде.
Всегда используйте надежные пароли. Такие пароли должны содержать:
Надежные пароли не должны содержать шаблонных и тематических фрагментов, а также слов, которые можно найти в словаре.
Примеры надежных паролей:
Вам следует регулярно — например, раз в один-три месяца — менять пароли.
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.
Читайте также: