
У меня Excel 2013. Чтобы получить доступ к VBA, я случайно нажал Ctrl+ F11вместо Alt+ F11, и был создан новый рабочий лист с именем 'Macro1'. Он выглядит как обычный рабочий лист, но ширина столбца по умолчанию для каждого столбца намного шире, а опция 'View Code' отключена в контекстном меню.
Ничего особенного не найдено в Интернете о цели и значимости этого листа. Кто-нибудь знает, о чем этот лист макросов и что он делает?
решение1
Это лист макросов Excel 4.0, часть макроязыка XLM. Он включен для обратной совместимости с версиями до Excel 4. Язык VBA был представлен в Excel 5 и значительно превосходит его во всех отношениях, поэтому XLM был постепенно выведен из обращения.
Чтобы использовать его (не рекомендуется), вы пишете ряд команд XLM в столбце. Он будет выполнен сверху вниз. Чтобы объявить его, вы выбираете верхнюю ячейку этого диапазона, затем в меню «вставка», в подменю «имя», выбираете «определить». Дайте ему подходящее имя и нажмите «добавить». Затем выберите его в том же диалоговом окне, и ниже появятся переключатели. Они будут предлагать «команда», «функция» или «нет». Выберите команду или функцию, в зависимости от ситуации.
Вы даже можете вызвать процедуру VBA из макроса Excel 4.0 XLM, используя функцию RUN XLM. Например, следующий макрос запускает тестовую подпрограмму, содержащуюся в Module1 в рабочей книге Book1.xls:
=RUN(Book1.xls!Module1.Test)
Как сказано вЭта статья:
Благодаря практике «стратегической несовместимости» Microsoft и полному пренебрежению инвестициями, сделанными их клиентами, эти элементарные макросы требовали определенных изменений для каждой новой версии Excel в течение десятилетия с момента их первоначального выпуска, и ситуация стала хуже, а не лучше, с тех пор как Microsoft представила новый язык программирования Visual Basic для Excel (который сам по себе является клоакой несовместимости от версии к версии).
Если вы хотите узнать больше о XLM, вот несколько ресурсов:
- Работа с макросами Excel 4.0
- Файл справки для макросов Excel 4.0(требуется winhlp32)
решение2
Люди искали способы «скрыть» данные от пользователей, но даже используя xlVeryHidden, вы можете видеть листы, если зайдете в редактор VBA. Вы можете защитить проект VBA паролем, но многие забывают это сделать. Этот лист XLM не будет показан в проекте VBA, и когда вы пройдете по всем листам, он даже не будет показан. Так что если вы используете xlVeryHidden с этим листом, вы будете единственным человеком, который о нем знает. Вы можете использовать его для встраивания паролей и т. д., и вы можете скрыть любые вызовы к нему в сложном коде VBA. Просто мысль :-)