В чем проблема. Пишу макрос, добавляющий вызов процедуры во всплывающее по правой кнопке контекстное меню. На Win версии Excel (свежеобновленная 2021) в "Эта книга" вставляю следующий код:
PublicSub Workbook_SheetDeactivate(ByVal Sh AsObject) OnErrorResumeNext
Application.CommandBars("Cell").Controls("Send").Delete
Application.CommandBars("Cell").Controls("Final").Delete OnErrorGoTo0 EndSub
И всё прекрасно работает. Но только на Windows. На Mac-версии Excel (2021, 16.82 24012414) в VBA код после открытия файла виден, но он отображается не в "Эта книга", а в "Ёта нига" (а ниже по списку появляется "ЭтаКнига1", без кода внутри). Хотя при этом наверху в редакторе VBA нормально отображается, например, Workbook и SheetActivate. Но не важно, собственно, как отображается — главное, что даже не пытается исполняться по эвентам. Расставлял брекпойнты по коду — никаких попыток нет. Естественно, в "безопасности" разрешено выполнение любых макросов. Если сделать новый файл на маке и положить этот же код в него — всё работает, но вряд ли хорошая мысль купить себе мак для разработки одного файла.
Что нужно сделать, чтобы разрабатываемый на Win-версии код работал на Mac? Может быть какие-то настройки в Win-версии нужно поправить? Какое-то из свойств книги скорректировать из дефолта? Или как-то отключить русификацию дефолтных имен книг, чтобы вместо "Эта книга" было "This Workbook" (но тогда как?).
Коллеги, добрый день!
В чем проблема. Пишу макрос, добавляющий вызов процедуры во всплывающее по правой кнопке контекстное меню. На Win версии Excel (свежеобновленная 2021) в "Эта книга" вставляю следующий код:
PublicSub Workbook_SheetDeactivate(ByVal Sh AsObject) OnErrorResumeNext
Application.CommandBars("Cell").Controls("Send").Delete
Application.CommandBars("Cell").Controls("Final").Delete OnErrorGoTo0 EndSub
И всё прекрасно работает. Но только на Windows. На Mac-версии Excel (2021, 16.82 24012414) в VBA код после открытия файла виден, но он отображается не в "Эта книга", а в "Ёта нига" (а ниже по списку появляется "ЭтаКнига1", без кода внутри). Хотя при этом наверху в редакторе VBA нормально отображается, например, Workbook и SheetActivate. Но не важно, собственно, как отображается — главное, что даже не пытается исполняться по эвентам. Расставлял брекпойнты по коду — никаких попыток нет. Естественно, в "безопасности" разрешено выполнение любых макросов. Если сделать новый файл на маке и положить этот же код в него — всё работает, но вряд ли хорошая мысль купить себе мак для разработки одного файла.
Что нужно сделать, чтобы разрабатываемый на Win-версии код работал на Mac? Может быть какие-то настройки в Win-версии нужно поправить? Какое-то из свойств книги скорректировать из дефолта? Или как-то отключить русификацию дефолтных имен книг, чтобы вместо "Эта книга" было "This Workbook" (но тогда как?).vlutoshkin
Вроде бы заработало, еще раз спасибо. Я думал, что это прямо зашитые имена и если их изменить - не будут работать функции типа Workbook.Open. Был не прав
Вроде бы заработало, еще раз спасибо. Я думал, что это прямо зашитые имена и если их изменить - не будут работать функции типа Workbook.Open. Был не прав vlutoshkin