Создание строки меню с помощью кода VBA ничем не отличается от аналогичной операции создания панели инструментов, рассмотренной в предыдущем часе. Фактически, вы создаете элемент той же самой коллекции CommandBars (Командные панели). Оператор, создающий строку меню (командную панель), имеет следующий синтаксис:
Аргумент Name (Имя) содержит имя командной панели. Строго говоря, аргумент Name необязателен. Если он не задан, то по умолчанию командной панели присваивается имя, подобное Custom 1.
Аргумент Position (Позиция) также необязательный аргумент. Он указывает местоположение или тип создаваемой командной панели.
Так как мы создаем именно строку меню, то аргументу MenuBar (Строка меню) надо дать значение True. По умолчанию этот аргумент имеет значение False.
Аргумент Temporary (Временно) также необязательный. Если этот аргумент имеет значение True, то командная панель будет удалена при закрытии приложения, ее содержащего. По умолчанию этот аргумент имеет значение False.
Приступим к практической работе по созданию меню. Закройте все открытые рабочие книги и откройте новую. Нажмите комбинацию клавиш <Alt+F11> для перехода в редактор Visual Basic. Вставьте модуль в текущую рабочую книгу. Далее выполните следующие действия.
Перейдите в рабочую книгу. Создайте командную кнопку на рабочем листе Лист1. Назначьте этой кнопке процедуру ПервоеМеню и задайте надпись на кнопке Мое меню.
Создайте другую командную кнопку и назначьте ей процедуру ОтменаМеню. Задайте надпись на кнопке Стандартное меню.
Щелкните на кнопке Мое меню. В окне рабочей книги вместо стандартной строки меню отобразится пустая строка (рис. 17.4).
Щелкните на кнопке Стандартное меню. Восстановится стандартная строка меню.
Рис. 17.4. Вместо привычного меню - пустая строка
Итак, мы только что создали строку меню (пока пустую) посредством кода VBA. В листинге 17.1 приведен полный код процедуры ПервоеМеню.