Отключить все диалоговые окна в Excel при запуске сценария VB?
==============================================================

У меня есть некоторый код в VB, который сохраняет все файлы XLSM как XLSX. У меня уже есть код, который сделает это для меня, но диалоговые окна появляются для каждого действия. Это было хорошо для нескольких десятков файлов. Тем не менее, я собираюсь использовать это для сотен файлов XLSM одновременно, и я не могу просто сидеть за компьютером весь день, щелкая диалоговые окна снова и снова.

Код, который я попробовал, в значительной степени:

Хотя это не вызывает ошибку, это также не работает.

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

Поскольку я запускаю этот код в редакторе VB в Excel, возможно, есть ли опция, которая позволит мне отключить диалоговые окна для отладки?

Я также попробовал:

Ни один из тех не работал.

**Редактировать:**

Вот как выглядит код выше в моем текущем коде:

Я также окружил`For` петля, в отличие от`ActiveWorkbook.SaveAs` линия:

Наконец я сдвинул`Application.DisplayAlerts` выше`Workbooks.Open` линия:

Ни одна из этих работ, а также.

**Редактировать:**

Я использую Excel для Mac 2011, если это поможет.

Решение: Макросы автоматизации вы бы выиграли от использования утилиты автоматизации. Если бы вы использовали Windows PC, я бы порекомендовал[AutoHotkey](https://autohotkey.com/), Я не использовал утилиты автоматизации на Mac, но[это спросить разные пост](https://apple.stackexchange.com/questions/153930/autohotkey-equivalent-for-os-x) имеет несколько предложений, хотя ни один не кажется бесплатным.

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

По сути, вы записываете или пишете простой макрос автоматизации, который ожидает активизации диалогового окна «Сохранить как» в Excel, нажимает ввод / возврат для завершения действия сохранения и затем ожидает закрытия окна «Сохранить как». Вы можете настроить его на выполнение в непрерывном цикле, пока не завершите макрос вручную.

Вот простая версия скрипта Windows AutoHotkey, которая будет выполнять то, что вы пытаетесь сделать на Mac. Это должно дать вам представление о логике.

Пример макроса автоматизации: AutoHotkey

е нескольких обновлений:

После запуска всех обновлений последний шаг в моем скрипте VBA:

Надеюсь это поможет.



[Excel Macro Security - www.excelfunctions.net](http://www.excelfunctions.net/Excel-Macro-Security.html):

**Безопасность макросов в Excel 2007, 2010 и 2013:**

.....

Различные типы файлов Excel, предоставляемые в последних версиях Excel, проясняют, когда книга содержит макросы, что само по себе является полезной мерой безопасности. Тем не менее, Excel также имеет дополнительные параметры безопасности макросов, которые управляются через меню параметров. Это :

«ключить все макросы без уведомления»

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

«ключить все макросы с уведомлением»

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

«ключить все макросы, кроме макросов с цифровой подписью»

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

«Включить все макросы»

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

Если вы доверяете макросам и можете их включить, выберите эту опцию:

«Включить все макросы»

и это диалоговое окно не должно отображаться для макросов.

Что касается диалогового окна для сохранения, то, заметив, что он работает в Excel для Mac 2011, я наткнулся на следующий вопрос о SO:[StackOverflow - Подавить диалог при использовании VBA для сохранения макроса, содержащего файл Excel (.xlsm), в качестве файла, не содержащего макрос (.xlsx)](https://stackoverflow.com/questions/19328089/suppress-dialog-when-using-vba-to-save-a-macro-containing-excel-file-xlsm-as), Из этого удаление диалога не представляется возможным, за исключением, возможно, некоторого моделирования ввода с клавиатуры. Я бы отправил еще один вопрос, чтобы узнать об этом. Извините, я мог получить вас только на полпути. Другой вариант - использовать компьютер под управлением Windows с Microsoft Excel, хотя я не уверен, подходит ли вам этот вариант в этом случае.



 я предлагаю

Не забудьте вернуть его по умолчанию, когда вы закончите

Напоминание о том, что`.SaveAs` Функция содержит все необязательные аргументы. Рекомендую удалить`CreatBackup:= False` как то не надо.

Я думаю, что самый интересный способ - создать объект рабочей книги и получить доступ к`.SaveAs` свойство таким образом. Я не проверял это, но вы никогда не используете`Workbooks.Open` оказание`Application.AutomationSecurity` неприменимо. Возможно, экономия ресурсов и времени.

Тем не менее я смог выполнить следующее без каких-либо уведомлений в Excel 2013 Windows 10.



Вы пытались использовать параметр ConflictResolution: = xlLocalSessionChanges в методе SaveAs?

Как так: