Activex не работает в excel mac

Обновлено: 06.07.2024

Создал файлик, кнопки и др. были стандартными (Элементы управления формы, не ActiveX), к кнопкам были привязаны макросы.
Все работало везде.
Переписал все кнопки на элементах ActiveX, из макросов сделал процедуры для кнопок.
Все работает, но только на ОДНОМ, моем, компе.
Запускаешь файл на другом пк, и кнопки не работают, они отвязаны от процедур. В режиме конструктора перехожу на код кнопки, а создается новая процедура, а не привязанная ранее.

Как такое могло случиться?

Создал файлик, кнопки и др. были стандартными (Элементы управления формы, не ActiveX), к кнопкам были привязаны макросы.
Все работало везде.
Переписал все кнопки на элементах ActiveX, из макросов сделал процедуры для кнопок.
Все работает, но только на ОДНОМ, моем, компе.
Запускаешь файл на другом пк, и кнопки не работают, они отвязаны от процедур. В режиме конструктора перехожу на код кнопки, а создается новая процедура, а не привязанная ранее.

Как такое могло случиться? akhm

Создал файлик, кнопки и др. были стандартными (Элементы управления формы, не ActiveX), к кнопкам были привязаны макросы.
Все работало везде.
Переписал все кнопки на элементах ActiveX, из макросов сделал процедуры для кнопок.
Все работает, но только на ОДНОМ, моем, компе.
Запускаешь файл на другом пк, и кнопки не работают, они отвязаны от процедур. В режиме конструктора перехожу на код кнопки, а создается новая процедура, а не привязанная ранее.

Как такое могло случиться? Автор - akhm
Дата добавления - 22.03.2015 в 12:54

Спасибо, но, похоже что это не совсем мой случай.
Ошибку при добавлении ActiveX элементов я уже прошел, на рабочем компе. Решил ее созданием новой учетной записи.

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

Спасибо, но, похоже что это не совсем мой случай.
Ошибку при добавлении ActiveX элементов я уже прошел, на рабочем компе. Решил ее созданием новой учетной записи.

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

В моем же случае элементы ActiveX создаются и работают, но только если их создать заново. А уже созданные не хотят. Автор - akhm
Дата добавления - 22.03.2015 в 17:13

Заметил еще одну особенность:

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

Может я чего мог выключить на конкретном листе? запретить выполнение команд?

Заметил еще одну особенность:

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

Может я чего мог выключить на конкретном листе? запретить выполнение команд? akhm

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

Может я чего мог выключить на конкретном листе? запретить выполнение команд? Автор - akhm
Дата добавления - 22.03.2015 в 17:19

akhm, здравствуйте. А привязанная ранее процедура точно есть в Вашем файле? Может Вы сохранили документ без макросов? Приложите Ваш пример, с ним будет проще разобраться. akhm, здравствуйте. А привязанная ранее процедура точно есть в Вашем файле? Может Вы сохранили документ без макросов? Приложите Ваш пример, с ним будет проще разобраться. Manyasha

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

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

Следующие попытки
- открываю файл на компе, где не работает
- создаю новую книгу, копирую туда лист с кнопками (копируются и макросы листа)
- копирую макросы прописанный в книге
- и, вроде бы, ура заработали все кнопки
- но, пересохраняю файл на своем компе и на других перестает работать

из моего файла удалил все ненужное, сохранил, получился файл "не работает"
на другом компе из "не работает" скопировал лист в новую книгу, сохранил как "работает" и файл работает.

Что происходит на моем компе с файлом при его сохранении?

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

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

Следующие попытки
- открываю файл на компе, где не работает
- создаю новую книгу, копирую туда лист с кнопками (копируются и макросы листа)
- копирую макросы прописанный в книге
- и, вроде бы, ура заработали все кнопки
- но, пересохраняю файл на своем компе и на других перестает работать

из моего файла удалил все ненужное, сохранил, получился файл "не работает"
на другом компе из "не работает" скопировал лист в новую книгу, сохранил как "работает" и файл работает.

Что происходит на моем компе с файлом при его сохранении?

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

Следующие попытки
- открываю файл на компе, где не работает
- создаю новую книгу, копирую туда лист с кнопками (копируются и макросы листа)
- копирую макросы прописанный в книге
- и, вроде бы, ура заработали все кнопки
- но, пересохраняю файл на своем компе и на других перестает работать

из моего файла удалил все ненужное, сохранил, получился файл "не работает"
на другом компе из "не работает" скопировал лист в новую книгу, сохранил как "работает" и файл работает.

Что происходит на моем компе с файлом при его сохранении?

akhm, еще раз отвечу! Если у Вас офис 2010 sp2 то У ВАС 100% установлено обновление KB2553154 от 9 декабря. ИМЕННО НА ВАШЕЙ МАШИНЕ. Если вы откроете свой файл на свое рабочей машине и сохраните его, то на других машинах (даже на тех где обновление НЕ УСТАНАВЛИВАЛОСЬ от 9 декабря не устанавливалось) он работать не будет.
Ошибку обновления от 9 декабря исправляет обновление KB2920813 от 10.03.15. Проверьте установлено ли оно у Вас. Если этого обновления нет, то его необходимо установить, желательно через Центр Обновления!
Я эту тему хорошо знаю, так как "методом научного тыка" искал как избавиться от такой же проблемы у себя на фирме.
Проверить установлено ли оно у вас можно пройдя по пути:
Панель управления - Программы и компоненты - слева сверху переходите в Просмотр установленных обновлений и тут в разделе офис посмотрите KB2553154 от 9 декабря и KB2920813 от 10.03.15

UP:
Например, у меня в Вашем файле "Не работает" - отлично работают все элементы ActiveX и все команды выполняются!

akhm, еще раз отвечу! Если у Вас офис 2010 sp2 то У ВАС 100% установлено обновление KB2553154 от 9 декабря. ИМЕННО НА ВАШЕЙ МАШИНЕ. Если вы откроете свой файл на свое рабочей машине и сохраните его, то на других машинах (даже на тех где обновление НЕ УСТАНАВЛИВАЛОСЬ от 9 декабря не устанавливалось) он работать не будет.
Ошибку обновления от 9 декабря исправляет обновление KB2920813 от 10.03.15. Проверьте установлено ли оно у Вас. Если этого обновления нет, то его необходимо установить, желательно через Центр Обновления!
Я эту тему хорошо знаю, так как "методом научного тыка" искал как избавиться от такой же проблемы у себя на фирме.
Проверить установлено ли оно у вас можно пройдя по пути:
Панель управления - Программы и компоненты - слева сверху переходите в Просмотр установленных обновлений и тут в разделе офис посмотрите KB2553154 от 9 декабря и KB2920813 от 10.03.15

UP:
Например, у меня в Вашем файле "Не работает" - отлично работают все элементы ActiveX и все команды выполняются! DJ_Marker_MC

UP:
Например, у меня в Вашем файле "Не работает" - отлично работают все элементы ActiveX и все команды выполняются! Автор - DJ_Marker_MC
Дата добавления - 23.03.2015 в 15:26

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


Шаг 1

Запустите интернет-браузер на вашем компьютере Mac. Нажмите на ссылку для скачивания в разделе Ресурсы ниже.

Шаг 2

Шаг 3

Шаг 4

Следуйте инструкциям по установке для завершения установки ActiveX.

Как заставить работать элементы управления на Android "Gameboid"

Как заставить работать элементы управления на Android "Gameboid"

Gameboid - популярный эмулятор Game Boy Advance для операционной системы Android. Это позволяет пользователям играть в игры Game Boy Advance на своих смартфонах. Пока Gameboid использует набор .

Как заставить Microsoft Lifecam Cinema работать на Mac

Как заставить Microsoft Lifecam Cinema работать на Mac

Подключение Microsoft LifeCam к компьютеру Mac звучит так, как будто это должен быть простой процесс: подключите его к USB-порту и начинайте. Однако, потому что LifeCam не был разработан .

Как заставить IPTV работать на Mac

Как заставить IPTV работать на Mac

Будучи перспективной платформой, телевидение с интернет-протоколом еще не дошло до мейнстрима - для установки IPTV на OS X требуется немного. VLC VideoLAN поддерживает IPTV, но требует некоторого .

ИТ-специалисты могут найти дополнительные сведения о планировании элементов ActiveX в статье TechNet Планирование параметров безопасности для элементов управления ActiveX в приложениях Office 2010.

В этой статье

Включение элементов ActiveX в представлении Backstage

Откройте вкладку Файл.

В области Предупреждение системы безопасности нажмите кнопку Включить содержимое.

В разделе Включить все содержимое выберите команду Всегда включать активное содержимое данного документа.
Файл станет надежным документом.

На приведенном ниже рисунке показаны команды Всегда включать активное содержимое этого документа и Дополнительные параметры.

замещающий текст

На приведенном ниже рисунке показаны команды группы Включить содержимое.

Раскрывающийся список "Предупреждение системы безопасности"

Примечание: Исключение составляют элементы ActiveX с флагом блокировки. Такие элементы ActiveX не запускаются. Флаг блокировки — это функция безопасности, которая запрещает элементу ActiveX использовать код ActiveX, например устраняя уязвимость в системе безопасности или предотвращая запуск кода.

Включение элементов ActiveX на один раз при появлении предупреждения системы безопасности

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

Откройте вкладку Файл.

В области Предупреждение системы безопасности нажмите кнопку Включить содержимое.

Выберите элемент Дополнительные параметры .

В диалоговом окне Параметры безопасности Microsoft Office выберите команду Включить содержимое для этого сеанса для каждого элемента ActiveX.

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

Если файл содержит проект Visual Basic для приложений (VBA), например файл Microsoft Excel с поддержкой макросов, центр управления безопасностью налагает более жесткие ограничения, поскольку такой файл может содержать макросы.

Элементы ActiveX и другой активный контент следует включать только в том случае, если точно известно, что они получены из надежного источника.

Изменение параметров элементов ActiveX в Word, Access, Excel, PowerPoint, Publisher и Visio

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

Выберите Файл > Параметры.

Выберите по очереди пункты Центр управления безопасностью, Параметры центра управления безопасностью и Параметры ActiveX.

Выберите нужные параметры и нажмите кнопку ОК.

Далее показан пример области Параметры ActiveX центра управления безопасностью.

замещающий текст

Важно: При изменении параметра ActiveX в Word, Access, Excel, PowerPoint, Publisher или Visio аналогичные параметры изменяются и во всех остальных программах из этого списка.

Описание параметров элементов ActiveX

Приведенные ниже объяснения относятся к элементам ActiveX, которые не находятся в надежном расположении или надежных документах.

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

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

Запрос перед включением элементов управления, инициализация которых считается небезопасной (UFI), с дополнительными ограничениями и элементов управления, инициализация которых считается безопасной (SFI), с минимальными ограничениями. Здесь возможны два варианта в зависимости от наличия проектов VBA projects.

Запрос перед включением всех элементов управления с минимальными ограничениями. Этот параметр установлен по умолчанию. Здесь возможны два варианта в зависимости от наличия проектов VBA.

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

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

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

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

Риск и возможные последствия

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

Я пытаюсь заставить работать электронную таблицу 32-битной (для Mac) Excel 2011, которая содержит макрос. Проблема в том, что этот макрос отлично работает на ПК, но не на Mac. Я попытался импортировать словарь Tim Hall Dictionary.cls, но он все еще не работает. То же самое для KeyValuePair.cls.

Ошибка: ошибка времени выполнения «429» компонент ActiveX не может создать объект

Я не программист, поэтому проблема, вероятно, в том, что я не знаю, что изменить, чтобы все заработало. Это, наверное, очень легко для тех, кто знает, что они делают. Может кто-нибудь потратить несколько минут на просмотр файлов и сказать мне, какие части мне нужно изменить, чтобы запустить это? [Я предполагаю, что это работает…]

Я пытался заменить «Scripting.Dictionary» на «New.Dictionary» в двух местах (см. Ниже), но это не помогло.

ИЗМЕНЕННЫЙ КОД

2 ответа

New.Dictionary не является допустимым именем класса и также не работает на ПК. Обычно конструкция, использующая раннее связывание:

ИЛИ с использованием позднего связывания:

Однако Mac OS не имеет Scripting Runtime librar y, так что ни одна из этих вещей не будет вам доступна - Dictionary, FileSystemObject и т. Д.

Вам потребуется использовать Collection или другой тип данных вместо типа Dictionary, или вы можете позаимствовать у этот другой ответ и реализовать пользовательский словарь, как класс.

Я попытался импортировать словарь Tim Hall Dictionary.cls, но он все еще не работает. То же самое для KeyValuePair.cls.

Я подозреваю, что вы просто не знали, что вам также нужно использовать метод условной компиляции , чтобы назначить класс Dictionary в Mac OS и > класс в ОС Windows.

Удалите обе эти строки:

Они потерпят неудачу даже в Windows, как я описал выше. Аналогично, если вы хотите использовать этот код в средах и Win и Mac, вы не можете использовать Scripting.Dictionary без принятия дополнительных мер предосторожности, чтобы избежать ошибок.

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

В псевдокоде, в основном, вы делаете это:

Предполагая, что вы скопировали код KeyValuePair.cls и Dictionary.cls из другой ответ, который реализует реплику словаря в виде текстовых файлов и импортирует оба модуля в VBE вашего проекта.

Я бы поставил этот код чуть выше строки:

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

Это должно работать в обеих операционных системах, так как Dictionary.cls имитирует методы Scripting.Dictionary .

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

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

  1. Закрыть Excel (желательно вообще все окна и приложения)
  2. Нажать одновременно клавишу Windows и R (или нажать на панели задач кнопку ПУСК и выбрать команду Выполнить . В Windows 7 и выше она может отсутствовать и её необходимо будет отобразить через настройку меню Пуск)
  3. Ввести в поле команду: %APPDATA%\Microsoft\Forms и нажать Enter
    В XP обычно это папка:
    C:\Documents and Settings\%USERNAME%\Application Data\Microsoft\Forms\
    В Win7:
    C:\Users\%USERNAME%\AppData\Roaming\Microsoft\Forms\
  4. В открывшейся папке удалить все файлы с расширением EXD
  5. Так же не помешает удалить файлы с расширением EXD из временных папок Excel и VBE: %Temp%\Excel8.0\ , %Temp%\VBE\ , %USERPROFILE%\Local Settings\Temp\ , %USERPROFILE%\Local Settings\Temp\Excel8.0\ , %SystemRoot%\Temp\VBE\ , %SystemRoot%\Temp\Excel8.0\
    Если каких-то папок нет или в них нет файлов EXD - значит все хорошо и там ничего критичного нет.

fixMS_Hay.zip (423 bytes, 6 040 скачиваний)

Само содержание BAT-ника выглядит так:

@echo off del "%APPDATA%\Microsoft\Forms\*.exd" del "%APPDATA%\Microsoft\Excel\*.xlb" del "%APPDATA%\Roaming\Microsoft\Forms\*.exd" del "%Temp%\VBE\*.exd" del "%Temp%\Excel8.0\*.exd" del "%APPDATA%\Microsoft\Local\*.exd" del "%USERPROFILE%\Local Settings\Temp\*.exd" del "%USERPROFILE%\Local Settings\Temp\VBE\*.exd" del "%USERPROFILE%\Local Settings\Temp\Excel8.0\*.exd" del "%SystemRoot%\Temp\VBE\*.exd" del "%SystemRoot%\Temp\Excel8.0\*.exd"

Если использовали Способ1 или Способ2 , то для верности необходимо запустить файл с проектом VBA, открыть код(Alt+F11) и внести в код любые изменения (можно просто добавить или изменить любой комментарий), после чего скомпилировать проект в ручном режиме из меню: Debug=>Compile VBAProject. Сохранить файл. Попробовать работу ActiveX, в том числе на других ПК.

СПОСОБ 3
Самый верный способ для тех, кому нечего терять :-) Переустановка Windows. Можно еще попробовать сделать откат обновлений, но как показала практика откат не далеко не всегда решает проблему. Переустановка офиса помогает еще реже, судя по отзывам тех, кто столкнулся с проблемой. Т.е. переустановка может помочь, а может и нет. Как поступить в этом случае решайте сами.

СПОСОБ 4
Вспомнить в какой момент это все началось и проверить обновления офиса и безопасности за этот период от Microsoft. Если таковые были - перейти на страницу обновлений, изучить что в них вошло. И терпеливо ждать исправления проблемы от Microsoft.

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

Читайте также: