Документ содержит макросы элементы управления activex как убрать
Перейти к содержимому

Документ содержит макросы элементы управления activex как убрать

Элементы управления ActiveX в Microsoft Excel отключены?

У меня есть несколько листов Excel, в которых используются флажки ActiveX для управления определенными действиями. Они работали недавно, но сегодня начали выдавать ошибки. Меня предупредил об этом коллега, но он все еще работал на моем компьютере. Я сравнил его версию Excel со своей, и его версия была новее. Я заметил, что есть новые обновления Windows, поэтому сделал обновление. После того, как я применил ожидающие обновления, он больше не работает на моем компьютере. Я больше не могу проверять флажки ActiveX, и, как часть попытки отладки, похоже, я даже не могу добавить элемент управления ActiveX на любой рабочий лист, даже на новый рабочий лист. Я получаю диалоговое окно с сообщением об ошибке: «Невозможно вставить объект». (Я все еще могу добавлять элементы управления формы, но не ActiveX.) Кто-нибудь еще сталкивался с этим после недавнего обновления? Какие-либо предложения?

11 ответов

На других форумах я узнал, что это связано с обновлением MS и что хорошее решение — просто удалить файл MSForms.exd из любой подпапки Temp в профиле пользователя. Например:

Конечно, приложение (Excel, Word . ) должно быть закрыто, чтобы удалить этот файл.

Вот лучший ответ, который я нашел в блоге группы поддержки Microsoft Excel.

  1. На полностью обновленном компьютере после удаления файлов .exd откройте файл в Excel с разрешениями на редактирование.

    Откройте Visual Basic для приложений> измените проект, добавив комментарий или отредактировав любой модуль кода> Отладка> Скомпилировать VBAProject.

    Сохраните и снова откройте файл. Тест на разрешение. Если решение будет решено, предоставьте этот обновленный проект дополнительным пользователям.

    Предупреждение. Если этот шаг решит вашу проблему, имейте в виду, что после развертывания этого обновленного проекта для других пользователей эти пользователи будут также необходимо, чтобы обновления применялись к их системам и файлам .exd тоже удалены.

Это был KB2553154. Microsoft необходимо выпустить исправление. Как разработчик приложений Excel, мы не можем заходить на все компьютеры наших клиентов и удалять с них файлы. Нас обвиняют в том, что вызвало Microsoft.

Я разработчик Excel, и я определенно почувствовал боль, когда это произошло. К счастью, мне удалось найти обходной путь, переименовав файлы MSForms.exd в VBA, даже когда Excel запущен, что также может решить проблему. Разработчики Excel, которым необходимо распространять свои электронные таблицы, могут добавить в свои электронные таблицы следующий код VBA, чтобы сделать их невосприимчивыми к обновлению MS.

Разместите этот код в любом модуле.

Подпрограмма RenameMSFormsFiles пытается переименовать файлы MSForms.exd в папках C:\Users\[user.name]\AppData\Local\Temp\Excel8.0\ и C:\Users\[user.name]\AppData\Local\Temp\VBE\ в MSForms — Copy.exd.

Затем вызовите подпрограмму RenameMSFormsFiles в самом начале события Workbook_Open.

Электронная таблица попытается переименовать файлы MSForms.exd при открытии. Очевидно, это не идеальное решение:

  1. Затронутый пользователь по-прежнему будет сталкиваться с ошибками элемента управления ActiveX при запуске кода VBA при первом открытии электронной таблицы. Только после однократного выполнения кода VBA и перезапуска Excel проблема устраняется. Обычно, когда пользователь сталкивается с неработающей электронной таблицей, он рывком закрывает Excel и пытается снова открыть электронную таблицу. 🙂
  2. Файлы MSForms.exd переименовываются каждый раз при открытии электронной таблицы, даже если с файлами MSForms.exd нет проблем. Но таблица будет работать нормально.

По крайней мере, на данный момент разработчики Excel могут продолжать распространять свою работу с помощью этого обходного пути, пока Microsoft не выпустит исправление.

Я разместил это решение здесь.

В Windows 8.1 я не мог найти никаких файлов .exd с помощью поиска Windows. С другой стороны, команда cmd dir *.exd /S нашла один файл в моей системе.

Советы в КБ и выше у меня не работали. Я обнаружил, что если один пользователь Excel 2007 (с обновлением безопасности или без него; не уверен в точных обстоятельствах, вызывающих это) сохраняет файл, возвращается исходная ошибка.

Я обнаружил, что самый быстрый способ восстановить файл — это удалить весь код VBA. Сохранить. Затем замените код VBA (скопируйте / вставьте). Сохранить. Прежде чем пытаться это сделать, я сначала удаляю файлы .EXD, потому что в противном случае я получаю ошибку при открытии.

В моем случае я не могу обновить / обновить всех пользователей моего файла Excel в разных местах. Поскольку проблема возвращается после того, как некоторые пользователи сохранят файл Excel, мне придется заменить элемент управления ActiveX чем-то другим.

Лучший источник информации и обновлений по этой проблеме, которые я смог найти, — это блоги TechNet »Блог группы поддержки Microsoft Excel (как уже упоминалось):

В марте 2015 года было выпущено исправление в дополнение к автоматическим инструкциям по исправлению и ручным инструкциям, и оно также доступно в Центре обновления Windows.

СТАТУС: Обновление от 10 марта 2015 г .:

Исправления для этой проблемы были выпущены в обновлениях Office 2007, 2010 и 2013 за март 2015 г.

Общая информация о проблеме:

Для некоторых пользователей элементы управления формами (FM20.dll) больше не работают должным образом после установки обновлений безопасности Microsoft Office MS14-082 за декабрь 2014 г. Иногда возникают проблемы, например, когда они открывают файлы с существующими проектами VBA с помощью элементов управления форм, попробуйте для вставки элемента управления форм на новый рабочий лист или запуска стороннего программного обеспечения, которое может использовать эти компоненты.

https://technet.microsoft.com/en-us/library/security/ms14-082.aspx

Вы можете получить такие ошибки, как: «Невозможно вставить объект»; «Библиотека объектов недействительна или содержит ссылки на определения объектов, которые не удалось найти»; «Для создания этого объекта используется программа Forms. Эта программа либо не установлена ​​на вашем компьютере, либо не отвечает. Чтобы изменить этот объект, установите Forms или убедитесь, что все диалоговые окна в Forms закрыты». [. ] Кроме того, возможно, вы не сможете использовать или изменить свойства элемента управления ActiveX на листе или получите сообщение об ошибке при попытке сослаться на элемент управления ActiveX как на член рабочего листа с помощью кода.

Руководство и дополнительные решения:

Решение для сценариев:

Поскольку эта проблема может затронуть несколько компьютеров, также можно создать сценарий для удаления файлов EXD и запустить сценарий как часть процесса входа в систему с использованием политики. Сценарий, который вам может понадобиться, должен содержать следующие строки и должен запускаться для каждого ПОЛЬЗОВАТЕЛЯ, поскольку файлы .exd зависят от ПОЛЬЗОВАТЕЛЯ.

  1. На полностью обновленном компьютере после удаления файлов .exd откройте файл в Excel с разрешениями на редактирование.

  2. Откройте Visual Basic для приложений> измените проект, добавив комментарий или отредактировав любой модуль кода> Отладка> Скомпилировать VBAProject.

  3. Сохраните и снова откройте файл. Проверьте разрешение.

Упрощенные инструкции для конечных пользователей. Не стесняйтесь скопировать / вставить следующее.

Вот как решить возникшую проблему:

  1. Закройте все программы и файлы Office.
  2. Откройте проводник Windows и введите% TEMP% в адресную строку, затем нажмите Enter. Вы попадете во временную папку системы.
  3. Найдите и удалите следующие папки: Excel8.0, VBE, Word8.0
  4. Теперь попробуйте снова использовать свой файл, проблем быть не должно.

Возможно, вам придется подождать, пока проблема не возникнет, чтобы это исправление сработало. Его преждевременное применение (до того, как Центр обновления Windows будет установлен в вашей системе) не поможет.

Я наконец нашел этот ответ в официальной базе знаний Microsoft:

Здесь нет новой информации, чем та, что у нас есть в предыдущих ответах, но, по крайней мере, подтверждается, что Microsoft знает об этой проблеме.

Я знаю, что на этот счет уже было опубликовано много ответов, но ни один из них независимо не работал для моего сайта. Итак, вот что сработало для меня:

Шаг 1. Удалите следующие обновления — KB2920789, KB2920790, KB2920792, KB2920793, KB2984942, KB2596927

Шаг 2. Скройте эти обновления, чтобы они не устанавливались при последующих перезагрузках.

Шаг 3: Удалите папку Excel8.0 из C: \ Users \ <> \ AppData \ Local \ Temp

Шаг 4: Перезагрузите рабочую станцию ​​(я бы также убедился, что вышеупомянутые КБ не были применены случайно)

Я хочу дать ответ, который сработал для меня как единственное (я понимаю, что, возможно, я единственный когда-либо). У меня был один макрос, который я вызывал с помощью ленты. У него был следующий код:

Я не знал, что это вызывает ошибку, поэтому я был сбит с толку и попробовал все здесь. Кнопка просто перестала работать, и я не мог заставить ее работать. Когда я заметил ошибку и исправил ее:

Он снова заработал. Совершенно странно, если вы спросите меня, но, может быть, это поможет кому-то, кто был в таком отчаянии, как я.

Элементы управления ActiveX и безопасность Office

Элементы управления Microsoft® ActiveX® в некоторых случаях могут представлять собой угрозу безопасности, поскольку с их помощью может распространяться вредоносный код или вирусы (особенно в тех случаях, когда на компьютере не настроены все необходимые параметры безопасности).

Например, если с веб-станицы загружается неподписанный элемент управления ActiveX, и при этом на компьютере не установлен уровень безопасности обозревателя Microsoft Internet Explorer Высокая (High) или Средняя (Medium), элемент ActiveX запустится без предупреждения. В том случае, если этот элемент содержит вирус или другой вредоносный код, работа операционной системы может быть нарушена, а содержащиеся на компьютере данные могут быть повреждены.

В этой статье содержится информация о том, что представляют собой элементы управления ActiveX, а также о том, как избежать проблем, связанных с установкой и использованием непроверенных элементов управления.

Что представляет собой элемент управления ActiveX

По существу элемент управления ActiveX является OLE- или COM-объектом. Элемент ActiveX – это программа, которая автоматически регистрируется в системном реестре при первом запуске.

Элемент управления ActiveX может быть как простым (как например текстовое поле), так и достаточно сложным (например, представлять собой ряд диалоговых окон). В некоторых случаях элемент ActiveX по сложности сравним с небольшим приложением. Модули ActiveX используются в качестве элементов управления на веб-страницах, в качестве надстроек, разрабатываемых сторонними производителями для крупных приложений, а также в качестве подключаемых модулей (plug-ins). С этой точки зрения элементы управления ActiveX аналогичны Java-приложениям, подключаемым модулям Netscape и выполняемым сценариям. Однако преимущество ActiveX по сравнению с другими возможностями программирования заключается в том, что элементы управления ActiveX могут использоваться в приложениях, написанных на различных языках, включая все языки, предназначенные для программирования баз данных Microsoft и управления ими.

Элементы управления ActiveX не являются самостоятельными решениями. Они могут быть запущены только из родительских приложений, таких как обозреватель Internet Explorer, приложения Microsoft Visual Basic®, среда разработки Visual C++® или Visual Basic for Applications и так далее. Модули ActiveX облегчают распространение специализированных элементов управления через сеть и интеграцию этих элементов в обозреватели веб-страниц. Элементы управления ActiveX могут предоставлять сведения о себе приложениям, в которых они используются.

Элементы управления ActiveX могут выполняться в виде сценариев веб-страниц. Это означает, что Вы можете создать или приобрести модуль ActiveX, представляющий собой элемент управления пользовательского интерфейса или элемент интерфейса графического устройства (Graphics Device Interface, GDI), а затем управлять им, программируя алгоритм его работы на языке сценариев (таком как VBScript или JavaScript™).

Параметры безопасности, связанные с инициализацией элементов ActiveX

На странице Specify Office Security Settings программ Custom Installation Wizard и Custom Maintenance Wizard доступны четыре уровня безопасности для элементов управления ActiveX:

  • Do not configure

MST- или CMW-файл не изменяет параметры безопасности, настроенные на компьютере пользователя. Новые приложения устанавливаются с уровнем безопасности по умолчанию Prompt user to use persisted data.

  • Prompt user to use control defaults

Перед инициализацией элемента ActiveX пользователь получает предупреждение о том, что выполнение кода такого элемента может быть небезопасным. Если пользователь доверяет источнику документа и подтверждает это, элемент ActiveX инициализируется с параметрами по умолчанию, которые отключают для элемента ActiveX возможность использования и сохранения постоянных данных. Это приводит к тому, что элемент управления всегда запускается с параметрами по умолчанию, тем самым, снижая возможность возникновения проблем, связанных с ошибочными настройками компьютера или умышленным проведением атак. Если задан этот уровень безопасности, при запуске элемента ActiveX пользователю выдается предупреждение, но, тем не менее, оно может быть проигнорировано.

  • Prompt user to use persisted data

Перед инициализацией элемента ActiveX пользователь получает предупреждение о том, что выполнение кода такого элемента может быть небезопасным. Если пользователь доверяет источнику документа и подтверждает это, элемент ActiveX инициализируется, используя связанные с ним данные, сохраненные ранее. Если задан этот уровень безопасности, при использовании элемента ActiveX существует возможность проникновения вирусов в систему.

  • Do not prompt

Элемент ActiveX может запускаться c конфигурацией по умолчанию. Если задан этот уровень безопасности, то элемент ActiveX может использовать данные, сохраненные в предыдущих сеансах, а пользователь не получает никаких уведомлений или предупреждений.

Использование администраторами этих параметров безопасности в мастере Custom Installation Wizard или Custom Maintenance Wizard обеспечивает дополнительный контроль над выполнением потенциально опасного кода элементов ActiveX на клиентских компьютерах. Для получения дополнительной информации о записях в системном реестре, относящихся к рассмотренным параметрам безопасности, обратитесь к статье Как работают системные политики на веб-странице Office 2003 Resource Kit.

Подписывание кода

Поскольку элементы ActiveX могут получать доступ к основным службам операционной системы, необходимо убедиться, что запускаемый элемент не является вредоносной программой. Выполнить такую проверку помогает технология Microsoft Authenticode®, которая позволяет разработчику подтвердить надежность создаваемого им элемента ActiveX. Эта процедура называется подписыванием кода и предоставляет пользователям возможность идентифицировать автора программы, прежде чем дать разрешение на ее установку или выполнение.

Если Вы когда-либо использовали неподписанные или неопознанные элементы управления ActiveX при работе с обозревателем Internet Explorer, Вы могли видеть диалоговые окна, сообщающие о том, что:

  • Элемент управления не подписан
  • Инициализация элемента небезопасна
  • Элемент небезопасен для выполнения сценариев

Загруженные из Интернета элементы управления ActiveX могут выполнять такие же действия, что и обычная программа – например, удалять файлы и записи реестра. В случае использования Java этот вопрос решается путем ограничения действий, которые разрешено выполнять Java-апплету с файлами и системным реестром. Например, Java-приложение не может получить прямой доступ к файловой системе компьютера. Для элементов управления ActiveX используется другой подход: во-первых, необходимо выполнить проверку подлинности автора элемента ActiveX, во-вторых, необходимо проверить, что содержимое элемента ActiveX не было изменено с момента его подписывания, и, в-третьих, необходимо удостовериться, что выполнение элемента ActiveX является безопасным. Благодаря такому подходу, элементы ActiveX могут использовать все возможности операционной системы, но для того, чтобы разработчик мог гарантировать безопасность при работе с этими элементами, ему необходимо пройти строгий процесс получения сертификатов доверия, выдаваемых центрами сертификации.

Установка элементов управления ActiveX

Если пользователь пытается установить и запустить незарегистрированный элемент управления ActiveX, загруженный из Интернета, обозреватель Internet Explorer проверяет, содержит ли этот элемент управления цифровую подпись. Если файл элемента управления ActiveX (OCX-файл) имеет сертификат доверия, который уже был принят пользователем и считается доверенным, этот файл может быть установлен и зарегистрирован в системе. В зависимости от уровня безопасности, установленного для обозревателя Internet Explorer, пользователю предлагается установить элемент ActiveX, если в системе не содержатся сведения о его сертификате. Если пользователь принимает решение установить элемент ActiveX, в системный реестр заносятся сведения о сертификате, связанном с этим элементом.

Если OCX-файл входит в состав какого-либо приложения, установленного с компакт-диска или из другого локального источника, проверка сертификата (если он существует), связанного с этим файлом, не производится. В этом случае предполагается, что файл элемента управления связан с приложением, которое считается надежным для установки, и регистрация OCX-файла проходит без каких-либо дополнительных проверок.

После того, как элемент управления установлен на компьютере пользователя, он считается надежным, даже если изначально не имел цифровой подписи; при его запуске диалоговые окна с информацией о подписывании кода не выводятся.

Подписывание элементов управления ActiveX

Для того чтобы выполнить цифровое подписывание элемента управления ActiveX, Вам необходимо получить сертификат из центра сертификации (сведения о центрах сертификации можно найти через поисковые системы в Интернете). Для подписывания элемента ActiveX необходимо следовать указаниям выбранного Вами центра сертификации.

Центры сертификации предоставляют сертификаты различных уровней доверия, начиная от индивидуальных сертификатов и заканчивая сертификатами для корпораций. Ознакомьтесь с информацией о каждом центре сертификации, чтобы решить, какой из них в наилучшей степени отвечает Вашим требованиям.

Определение безопасности элементов управления ActiveX

Цифровая подпись является неотъемлемой частью элемента управления ActiveX. Таким образом, элемент ActiveX всегда содержит достоверную информацию о своем предназначении, предоставленную разработчиком. Тем не менее, безопасность работы с элементом ActiveX гарантируется только в тех случаях, когда он используется в условиях, в которых проводилось его тестирование.

Предполагается, что элементы управления ActiveX, отмеченные как безопасные, являются безопасными при всех возможных условиях использования. Таким образом, элемент, отмеченный как безопасный для выполнения сценариев (SFS) или инициализации (SFI), должен быть защищен от непредсказуемого поведения, которое могло быть не предусмотрено разработчиком при написании сценария. Хотя разработчику относительно просто создать элемент ActiveX защищенный от неправильного использования, невозможно гарантировать, что этот элемент всегда будет являться безопасным при использовании в сценариях, написанных другим разработчиком.

Отмечая элемент ActiveX как безопасный для выполнения сценариев или инициализации, разработчики тем самым заявляют, что при любых способах инициализации элемента, он не нанесет вреда системе и не нарушит ее безопасность.

Прежде чем отметить элемент управления ActiveX как безопасный, разработчик должен полностью удостовериться в том, что этот элемент на самом деле является таковым. Например, для каждого элемента ActiveX необходимо убедиться в том, что:

Иллюстрированный самоучитель по настройке Office 2003

Элементы управления Microsoft® ActiveX® в некоторых случаях могут представлять собой угрозу безопасности, поскольку с их помощью может распространяться вредоносный код или вирусы (особенно в тех случаях, когда на компьютере не настроены все необходимые параметры безопасности).

Например, если с веб-станицы загружается неподписанный элемент управления ActiveX, и при этом на компьютере не установлен уровень безопасности обозревателя Microsoft Internet Explorer Высокая (High) или Средняя (Medium), элемент ActiveX запустится без предупреждения. В том случае, если этот элемент содержит вирус или другой вредоносный код, работа операционной системы может быть нарушена, а содержащиеся на компьютере данные могут быть повреждены.

В этой статье содержится информация о том, что представляют собой элементы управления ActiveX, а также о том, как избежать проблем, связанных с установкой и использованием непроверенных элементов управления.

Что представляет собой элемент управления ActiveX

По существу элемент управления ActiveX является OLE- или COM-объектом. Элемент ActiveX – это программа, которая автоматически регистрируется в системном реестре при первом запуске.

Элемент управления ActiveX может быть как простым (как например текстовое поле), так и достаточно сложным (например, представлять собой ряд диалоговых окон). В некоторых случаях элемент ActiveX по сложности сравним с небольшим приложением. Модули ActiveX используются в качестве элементов управления на веб-страницах, в качестве надстроек, разрабатываемых сторонними производителями для крупных приложений, а также в качестве подключаемых модулей (plug-ins). С этой точки зрения элементы управления ActiveX аналогичны Java-приложениям, подключаемым модулям Netscape и выполняемым сценариям. Однако преимущество ActiveX по сравнению с другими возможностями программирования заключается в том, что элементы управления ActiveX могут использоваться в приложениях, написанных на различных языках, включая все языки, предназначенные для программирования баз данных Microsoft и управления ими.

Элементы управления ActiveX не являются самостоятельными решениями. Они могут быть запущены только из родительских приложений, таких как обозреватель Internet Explorer, приложения Microsoft Visual Basic®, среда разработки Visual C++® или Visual Basic for Applications и так далее. Модули ActiveX облегчают распространение специализированных элементов управления через сеть и интеграцию этих элементов в обозреватели веб-страниц. Элементы управления ActiveX могут предоставлять сведения о себе приложениям, в которых они используются.

Элементы управления ActiveX могут выполняться в виде сценариев веб-страниц. Это означает, что Вы можете создать или приобрести модуль ActiveX, представляющий собой элемент управления пользовательского интерфейса или элемент интерфейса графического устройства (Graphics Device Interface, GDI), а затем управлять им, программируя алгоритм его работы на языке сценариев (таком как VBScript или JavaScript™).

Параметры безопасности, связанные с инициализацией элементов ActiveX

На странице Specify Office Security Settings программ Custom Installation Wizard и Custom Maintenance Wizard доступны четыре уровня безопасности для элементов управления ActiveX:

  • Do not configure

MST- или CMW-файл не изменяет параметры безопасности, настроенные на компьютере пользователя. Новые приложения устанавливаются с уровнем безопасности по умолчанию Prompt user to use persisted data.

  • Prompt user to use control defaults

Перед инициализацией элемента ActiveX пользователь получает предупреждение о том, что выполнение кода такого элемента может быть небезопасным. Если пользователь доверяет источнику документа и подтверждает это, элемент ActiveX инициализируется с параметрами по умолчанию, которые отключают для элемента ActiveX возможность использования и сохранения постоянных данных. Это приводит к тому, что элемент управления всегда запускается с параметрами по умолчанию, тем самым, снижая возможность возникновения проблем, связанных с ошибочными настройками компьютера или умышленным проведением атак. Если задан этот уровень безопасности, при запуске элемента ActiveX пользователю выдается предупреждение, но, тем не менее, оно может быть проигнорировано.

  • Prompt user to use persisted data

Перед инициализацией элемента ActiveX пользователь получает предупреждение о том, что выполнение кода такого элемента может быть небезопасным. Если пользователь доверяет источнику документа и подтверждает это, элемент ActiveX инициализируется, используя связанные с ним данные, сохраненные ранее. Если задан этот уровень безопасности, при использовании элемента ActiveX существует возможность проникновения вирусов в систему.

  • Do not prompt

Элемент ActiveX может запускаться c конфигурацией по умолчанию. Если задан этот уровень безопасности, то элемент ActiveX может использовать данные, сохраненные в предыдущих сеансах, а пользователь не получает никаких уведомлений или предупреждений.

Использование администраторами этих параметров безопасности в мастере Custom Installation Wizard или Custom Maintenance Wizard обеспечивает дополнительный контроль над выполнением потенциально опасного кода элементов ActiveX на клиентских компьютерах. Для получения дополнительной информации о записях в системном реестре, относящихся к рассмотренным параметрам безопасности, обратитесь к статье Как работают системные политики на веб-странице Office 2003 Resource Kit.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *