Тема совместимости макросов для Win Excel и Mac Excel не нова. В этой статье попробуем разобраться, какие правила следует соблюдать, чтобы добиться возможности работать с файлами Excel как под Windows, так и под MacOS.
Правило первое: откажитесь от кириллицы, в идеале — везде (в тексте кода, названиях модулей, в формах и т.д.). Если это никак невозможно, то откажитесь хотя бы от русских заглавных букв. Дело в том, что у Windows и MacOS различаются кодировки, поэтому заглавные русские буквы коверкаются при открытии файла в разных ОС.
Так выглядит кодовая таблица русских букв на Windows | А так выглядит кодовая таблица русских букв на MacOS |
---|---|
Нетрудно догадаться, что если файл создан в Win Excel, а потом открыт в Mac Excel (или наоборот), заглавные русские буквы в макросах, на формах, в именах модулей будут выглядеть кракозябрами
А вот так выглядит форма с русскими заглавными буквами, которую всего лишь раз открыли на Mac Excel
Правило второе, вытекающее из первого: присвойте листам кодовые имена, записанные латиницей. Кодовое имя листа — это имя модуля листа.
Изменить его можно в свойствах:
К слову, кодовое имя листа очень удобно использовать в макросе для обращения к листу.
То же самое следует сделать и с модулем книги.
Правило третье, вытекающее из первого: если Вы собираетесь макросом копировать, перемещать, переименовывать файлы, путь к файлу тоже должен содержать только латинские буквы.
Правило четвёртое: в модулях листов и модуле книги размещайте только макросы событий соответственно листа и книги, остальные макросы должны находиться в стандартных модулях
Отдельно надо сказать про формы. В Mac Excel 2011 был инструмент для создания и редактирования форм, в Mac Excel 2016 этого инструмента попросту нет. То есть файлы с уже созданными формами открываются и работают, но редактировать форму мы не сможем. На формы также распространяется правило НЕиспользования кириллицы.
Что касается самого кода, то тут следует помнить, что Mac Excel не умеет работать с некоторыми объектами, например, со словарями (Dictionary), с регулярными выражениями (RegExp) и др.
Кроме того, многие приёмы по-разному реализуются для Win Excel и Mac Excel. Например, совершенно по-разному реализована возможность открытия файла через диалог.
Более того, различия могут быть также между версиями Mac Excel. Например, если в макросе предполагается использовать путь к файлу, то в Mac Excel до 2011 включительно системным разделителем является двоеточие
Macintosh HD:Users:elena:Desktop:test.xlsm
А в Mac Excel 2016 системным разделителем будет слэш
/Users/elena/Desktop/test.xlsm
Таким образом, если мы хотим, чтобы наш файл с макросами работал и под Windows, и под MacOS, да ещё и в разных версиях Mac Excel, можно использовать такую конструкцию
Public Sub Test() 'проверка ОС #If Mac Then 'проверка версии Mac Excel If Val(Application.Version) < 15 Then 'здесь часть макроса для Mac Excel до 2011 включительно MsgBox "используется Mac Excel 2011 или старше" Else 'здесь часть макроса для Mac Excel 2016 MsgBox "используется Mac Excel 2016" End If #Else 'здесь часть макроса для Win Excel MsgBox "используется Win Excel" #End If End Sub
Скачать файл-пример
Всем добрый день,
Если кто то сможет помочь, буду безмерно благодарен.
Код |
---|
Option Explicit Private Sub Workbook_BeforeClose(Cancel As Boolean) Application.ScreenUpdating = False Dim wsSh As Worksheet Sheets(sWarning).Visible = -1 For Each wsSh In ThisWorkbook.Sheets If wsSh.Name <> sWarning Then wsSh.Visible = 2 Next wsSh Application.ScreenUpdating = 1 End Sub Private Sub Workbook_Open() Application.ScreenUpdating = False ThisWorkbook.Sheets(sMainSheet).Visible = -1 ThisWorkbook.Sheets(sWarning).Visible = 2 Application.ScreenUpdating = 1 frmIndicateUser.Show End Sub |
Не работает этот макрос на MAC Excel 2011, на Windows все работает без проблем. То есть при открытии книги, вылезает Userform на Windows но не работает на Маке. Весь этот макрос прописан в «Эта Книга» в VBAProject,
Если кто то знает почему не работает, или кк сделать чтоб работало, буду благодарен
Включить или отключить макрос в Office для Mac
В целях предотвращения заражения системы вирусами, содержащимися в макросах, при попытке открытия документа с макросом по умолчанию в Office для Mac отображается предупреждающее сообщение. Это сообщение отображается независимо фактического наличия вируса в макросе. Отображение предупреждающего сообщения можно отключить, но в этом случае следует открывать документы только из известных и доверенных источников.
Какую Office для Mac набор приложений вы используете?
Щелкните меню Word, Excelили PowerPoint меню.
Щелкните Настройки.
Нажмите кнопку Конфиденциальность & безопасности
Чтобы разрешить запуск всех макроса, выберите radio button Enable all macros (Включить все макросы).
Внимание: Это позволит запускать все макросы (как хорошая, так и плохая) без дополнительных предупреждений. Выберите этот параметр только в том случае, если вы уверены, что не будете открывать вредоносные или опасные файлы.
Чтобы получать запрос при каждом обнаружении макроса, выберите Отключить все макрос с уведомлением. Этот параметр установлен по умолчанию.
Чтобы отключить все макрос без уведомления, выберите Отключить все макросы без уведомления. Макрос не будет запускаться, и вы больше не будете получать запросы.
В меню Word выберите пункт Параметры.
В ок Параметры личные службы щелкните Безопасность .
Выполните одно из следующих действий:
Необходимые действия
Включите макросы при открытии файлов
Снимите флажок Предупреждать перед открытием файла, содержащего макросы.
Примечание: Если отключить защиту от вирусов в макросах, возникает риск заражения, которое может привести к серьезному повреждению данных.
См. предупреждающее сообщение при открытии файла с макросом
Убедитесь, что флажок Предупреждать перед открытием файла, содержащего макросы установлен.
PowerPoint
В меню PowerPoint выберите пункт Параметры.
На панели инструментов щелкните Общие .
Выполните одно из следующих действий:
Необходимые действия
Включите макросы при открытии файлов
Снимите флажок Включить защиту от макровирусов.
Примечание: Если отключить защиту от вирусов в макросах, возникает риск заражения, которое может привести к серьезному повреждению данных.
См. предупреждающее сообщение при открытии файла с макросом
Убедитесь, что флажок Включить защиту от макровирусов установлен.
Excel
В меню Excel выберите пункт Параметры.
В разделе Общий доступ и конфиденциальность щелкните Безопасность .
Выполните одно из следующих действий:
Необходимые действия
Включите макросы при открытии файлов
Снимите флажок Предупреждать перед открытием файла, содержащего макросы.
Примечание: Если отключить защиту от вирусов в макросах, возникает риск заражения, которое может привести к серьезному повреждению данных.
См. предупреждающее сообщение при открытии файла с макросом
Убедитесь, что флажок Предупреждать перед открытием файла, содержащего макросы установлен.
Включение и отключение макросов в программе Microsoft Excel
Макросы – это инструмент для создания команд в приложении Microsoft Excel, которые позволяют значительно сократить время на выполнение задач, автоматизировав процесс. Но, в то же время, макросы являются источником уязвимости, которой могут воспользоваться злоумышленники. Поэтому, пользователь на свой страх и риск должен решить применять данную возможность в конкретном случае, или нет. Например, если он не уверен в благонадежности открываемого файла, то лучше макросами не пользоваться, ведь они могут послужить причиной заражения компьютера вредоносным кодом. Учитывая это, разработчики предоставили возможность пользователю самому решать вопрос включения и отключения макросов.
Включение и отключение макросов через меню разработчика
Основное внимание мы уделим процедуре включения и отключения макросов в самой популярной и распространённой на сегодня версии программы — Excel 2010. Потом, более бегло поговорим о том, как это сделать в других версиях приложения.
Включить или отключить макросы в Microsoft Excel можно через меню разработчика. Но, проблема состоит в том, что по умолчанию данное меню отключено. Чтобы его включить, переходим во вкладку «Файл». Далее, кликаем по пункту «Параметры».
В открывшемся окне параметров, переходим в раздел «Настройка ленты». В правой части окна данного раздела устанавливаем галочку около пункта «Разработчик». Жмем на кнопку «OK».
После этого, на ленте появляется вкладка «Разработчик».
Переходим во вкладку «Разработчик». В самой правой части ленты расположен блок настроек «Макросы». Чтобы включить или отключить макросы, кликаем по кнопке «Безопасность макросов».
Открывается окно центра управления безопасностью в разделе «Макросы». Для того, чтобы включить макросы, переставляем переключатель в позицию «Включить все макросы». Правда, данное действие разработчик не рекомендует выполнять в целях безопасности. Так что, всё выполняется на свой страх и риск. Жмем на кнопку «OK», которая расположена в нижнем правом углу окна.
Отключаются макросы тоже в этом же окне. Но, существует три варианта отключения, один из которых пользователь должен выбрать в соответствии с ожидаемым уровнем риска:
- Отключить все макросы без уведомления;
- Отключить все макросы с уведомлением;
- Отключить все макросы, кроме макросов с цифровой подписью.
В последнем случае, макросы, у которых будет иметься цифровая подпись, смогут выполнять задачи. Не забываем жать на кнопку «OK».
Включение и отключение макросов через параметры программы
Существует ещё один способ включения и отключения макросов. Прежде всего, переходим в раздел «Файл», и там жмем на кнопку «Параметры», как и в случае включения меню разработчика, о чем мы говорили выше. Но, в открывшемся окне параметров, переходим не в пункт «Настройка ленты», а в пункт «Центр управления безопасностью». Кликаем по кнопке «Параметры центра управления безопасностью».
Открывается то же самое окно Центра управления безопасностью, в которое мы переходили через меню разработчика. Переходим в раздел «Параметры макросов», и там включаем или отключаем макросы тем же способом, как делали это в прошлый раз.
Включение и отключение макросов в других версиях Excel
В других версиях программы Excel процедура отключения макросов несколько отличается от указанного выше алгоритма.
В более новой, но менее распространенной версии программы Excel 2013, несмотря на некоторую разницу в интерфейсе приложения, процедура включения и отключения макросов происходит по тому же алгоритму, который был описан выше, а вот у более ранних версий он несколько отличается.
Для того, чтобы включить или отключить макросы в программе Excel 2007, нужно сразу кликнуть по логотипу Microsoft Office в верхнем левом углу окна, а затем в нижней части открывшейся страницы нажать на кнопку «Параметры». Далее, открывается окно Центра управления безопасностью, и дальнейшие действия по включению и отключению макросов практически ничем не отличаются от описанных для Excel 2010.
В версии Excel 2007 достаточно просто последовательно перейти по пунктам меню «Сервис», «Макрос» и «Безопасность». После этого, откроется окно, в котором нужно выбрать один из уровней безопасность работы макросов: «Очень высокая», «Высокая», «Средняя» и «Низкая». Эти параметры соответствуют пунктам параметров макросов более поздних версий.
Как видим, включить макросы в последних версиях программы Excel несколько сложнее, чем это было в предыдущих версиях приложения. Это связано с политикой разработчика на увеличение уровня безопасности пользователя. Таким образом, макросы может включить только более или менее «продвинутый» пользователь, который способен объективно оценить риски от выполняемых действий.
Мы рады, что смогли помочь Вам в решении проблемы.
КАК ЗАПУСТИТЬ МАКРОСЫ EXCEL В MAC IWORK — ВОКРУГ-ДОМ — 2022
Видео: Как включить макросы в Microsoft Excel (Июнь 2022).
Если вы часто используете электронные таблицы, вы, вероятно, использовали мини-программу для автоматизации функций в вашей электронной таблице. Эти пользовательские макросы (или сценарии) часто программируются в электронных таблицах Microsoft Excel, поскольку они могут выполнять сложные вычисления, которые не могут выполнять простые формулы электронных таблиц. Макросы написаны на языке программирования Visual Basic для приложений (VBA). К сожалению, приложение Apple для работы с электронными таблицами Numbers не может читать макросы, написанные на VBA. Однако, если у вас Apple iWork 09, есть несколько вариантов, которые вы можете попробовать, если по-прежнему хотите использовать макросы в своих таблицах.
Шаг 1
Используйте AppleScript для создания макросов электронных таблиц. Это встроенный язык сценариев Mac OS X. Все приложения iWork ’09, включая Numbers, поддерживают использование AppleScript.
Шаг 2
Переключитесь на использование предыдущей версии Excel для Mac. Excel 2004 поддерживает использование макросов VBA.
Шаг 3
Преобразуйте электронную таблицу Numbers ’09 в формат электронной таблицы Windows Excel. Откройте таблицу Numbers и нажмите «Файл», затем «Сохранить как». Выберите «Сохранить копию как» и выберите «Документ Excel» во всплывающем меню. Теперь вы можете применить макросы к электронной таблице, открыв электронную таблицу с версией Excel для Windows.
Как найти скрытые макросы в электронной таблице Excel
Макросы являются мощной функцией в Microsoft Excel и позволяют программно управлять несколькими функциями Excel. Приложения, которые могут занимать сотни ячеек вычислений .
Как переместить макросы Excel на другой компьютер
Макросы Excel могут сделать жизнь проще. Но представьте, как хорошо было бы брать свои макросы с собой, когда вы переходите на другой компьютер. Это не сложный процесс, особенно .
Благодарю, будем пробовать — заочно, у меня винда, у человека Мак, но он в макросах не спец.
Пока нашел такое, поменял под себя:
Visual Basic | ||
|
Функция FileDialog в отдельном модуле:
Visual Basic | ||
|
Насколько я понял, взято у Рона де Бруна (www.macexcel.com). Покопался там, с сохранением вопрос: из https://www.macexcel.com/examp… ileformat/ понял, что на маке надо непременно указывать формат, умолчания нет (как в 2007 — если ничего не говорить, будет xlsx). Константа для xlsx = 51, однако для Excel 2011 и Excel 2016 версии 15 надо прибавлять 1, то есть 52. У человека 16.54, тогда я 51 задаю?
И второе:
Visual Basic | ||
|
На винде пучком, даже если задан файл с пробелами: D:TestWeebОтчёт по оферте №6713101 от 03.01.2022.xlsx
А на маке, говорит человек, дает ошибку. Если без пробелов (D:TestWeebОтчёт№6713101.xlsx) — то нормально. Не понимаю…
Нашел по этой теме (https://sqlite.in/?qa=468061/d… l-2011-vba), что надо (в каких случаях?) указывать константу для Dir:
Visual Basic | ||
|
Но какую для xlsx? И надо ли или в чем вопрос?
Сложно, когда Мака для тестов нет. Если у вас, уважаемый SlavaRus, есть возможность проверить, было бы хорошо.
0
- Remove From My Forums
-
Question
-
добрый день, не работают макросы на mac, при открытие excel файла пишет, что «Открытая книга содержит автоматические связи с данными в другой книге» ну и дальше при игнорировании связей дальше выдает некоторые ошибки. На windows
такой проблемы нет. и у коллеги на mac вроде тоже нет. у меня office 365