Microsoft Excel

  • doc
  • 14.05.2020
Публикация в СМИ для учителей

Публикация в СМИ для учителей

Бесплатное участие. Свидетельство СМИ сразу.
Мгновенные 10 документов в портфолио.

Иконка файла материала 72. Microsoft Excel.doc

Совместимость макросов 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, можно использовать такую конструкцию

view plainprint?

1.        Public Sub Test()  

2.            'проверка ОС  

3.            #If Mac Then  

4.                'проверка версии Mac Excel  

5.                If Val(Application.Version) < 15 Then  

6.                    'здесь часть макроса для Mac Excel до 2011 включительно  

7.                    MsgBox "используется Mac Excel 2011 или старше"  

8.                Else  

9.                    'здесь часть макроса для Mac Excel 2016  

10.                 MsgBox "используется Mac Excel 2016"  

11.             End If  

12.         #Else  

13.             'здесь часть макроса для Win Excel  

14.             MsgBox "используется Win Excel"  

15.         #End If  

16.     End Sub  

 


Скачано с www.znanio.ru