Да бъдеш VBA програмист понякога може да бъде непосилно. Един от начините да погледнете VBA е, че това е инструмент, който ви позволява да имитирате команди на Excel. Например, помислете за това VBA изявление:
Диапазон(“A1:A12”).Име = “Имена на месеци”
Изпълнението на този VBA оператор има същия ефект като избора на Формули → Дефинирани имена → Дефиниране на име, за да се покаже диалоговият прозорец Ново име, като се напише MonthNames в полето Име и A1:A12 в полето Препраща към и щракнете върху OK.
Когато изпълните VBA инструкцията, диалоговият прозорец Ново име не се показва. Това почти винаги е това, което искате да се случи; не искате диалоговите прозорци да мигат на екрана, докато вашият макрос се изпълнява.
В някои случаи обаче може да искате кодът ви да показва един от многото вградени диалогови прозорци на Excel и да позволи на потребителя да направи избора в диалоговия прозорец. Можете да направите това, като използвате VBA, за да изпълните команда на лента. Ето пример, който показва диалоговия прозорец Ново име. Адресът в полето Препраща към представлява диапазона, който е избран при изпълнение на командата.
Показване на един от диалоговите прозорци на Excel с помощта на VBA.
Application.CommandBars.ExecuteMso „NameDefine“
Вашият VBA код не може да получи никаква информация от диалоговия прозорец. Например, ако изпълните кода, за да покажете диалоговия прозорец Ново име, вашият код не може да получи името, въведено от потребителя, или диапазона, който се наименува.
ExecuteMso е метод на обекта CommandBars и приема един аргумент: параметър idMso, който представлява контрола на лентата. За съжаление, тези параметри не са изброени в системата за помощ. И тъй като лентата не съществува завинаги, кодът, който използва метода ExecuteMso, не е съвместим с версии преди Excel 2007.
Ето още един пример за използване на метода ExecuteMso. Това изявление, когато се изпълни, показва раздела Шрифт на диалоговия прозорец Форматиране на клетки:
Application.CommandBars.ExecuteMso
„FormatCellsFontDialog“
Ако се опитате да покажете вграден диалогов прозорец в неправилен контекст, Excel показва съобщение за грешка. Например, ето изявление, което показва диалоговия прозорец Format Number:
Application.CommandBars.ExecuteMso „NumberFormatsDialog“
Ако изпълните този израз, когато не е подходящ (например е избрана форма), Excel показва съобщение за грешка, тъй като този диалогов прозорец е подходящ само за клетки на работния лист.
Excel има хиляди команди. Как можете да намерите името на този, от който се нуждаете? Един от начините е да използвате раздела Персонализиране на лентата на диалоговия прозорец Опции на Excel. Бързият начин да стигнете до там е да щракнете с десния бутон върху която и да е контрола на лентата и да изберете Персонализиране на лентата от контекстното меню.
На практика всяка команда, налична в Excel, е изброена в левия панел. Намерете командата, от която се нуждаете, и задръжте курсора на мишката върху нея и ще видите нейното тайно име на команда в подсказката (това е частта в скоби).
Използване на раздела Персонализиране на лентата за идентифициране на име на команда.