Домашняя страница Undo Do Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Статьи об Excel

МЕНЮ САЙТА
  • 1
  • 2
  • 3

КАТЕГОРИИ РАЗДЕЛА

ОПРОСЫ
Какой версией Excel Вы пользуетесь?
Всего ответов: 56972
Главная » Статьи » Эффективная работа в Excel » Excel для Windows и Excel для Mac OS

Совместимость макросов Excel для Windows и MacOS

Тема совместимости макросов для 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

 

Скачать файл-пример

 

Категория: Excel для Windows и Excel для Mac OS | Добавил: Pelena (14.09.2018)
Просмотров: 13233 | Комментарии: 5 | Теги: Win Excel, совместимость, макрос, Mac Excel, MacOS, MacBook | Рейтинг: 5.0/4


Всего комментариев: 5
0  
1    Serge_007   (17.09.2018 13:08) [ Материал]
   Хорошая статья, полезная

0   Спам
2    InExSu   (23.03.2019 08:12) [ Материал]
   Привет!
Спасибо.
"Правило второе" ... на картинках, чем отличаются Лист1 и Лист1 ?

+1  
3    Pelena   (23.03.2019 08:15) [ Материал]
   Просто разные скрины: первый из Win Excel, второй - из Mac Excel

Спам-сообщение скрыто. Показать
0   Спам
4    InExSu   (24.03.2019 09:36) [ Материал]
   Тогда может кому пригодится Кириллица, Латиница. Буквы похожие

0   Спам
5    Сов   (28.01.2021 07:44) [ Материал]
   Свойство Application.PathSeparator возвращает системный разделитель для путей

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!