Būti VBA programuotoju kartais gali būti neįtikėtina. Vienas iš būdų pažvelgti į VBA yra tai, kad tai įrankis, leidžiantis imituoti „Excel“ komandas. Pavyzdžiui, apsvarstykite šį VBA teiginį:
Diapazonas („A1:A12“). Pavadinimas = „Mėnesio vardai“
Vykdant šį VBA teiginį gaunamas toks pat efektas, kaip ir pasirenkant Formulės → Apibrėžti vardai → Nustatyti pavadinimą, kad būtų rodomas dialogo langas Naujas pavadinimas, laukelyje Vardas įveskite Mėnesių vardai, o lauke Refers to – A1:A12 ir spustelėkite Gerai.
Kai vykdote VBA sakinį, dialogo langas Naujas pavadinimas nepasirodo. Beveik visada taip norisi; nenorite, kad vykdant makrokomandą ekrane mirksėtų dialogo langai.
Tačiau kai kuriais atvejais galite norėti, kad jūsų kode būtų rodomas vienas iš daugelio „Excel“ integruotų dialogo langų ir vartotojas galėtų pasirinkti dialogo lange. Tai galite padaryti naudodami VBA, kad vykdytumėte juostelės komandą. Štai pavyzdys, kuriame rodomas dialogo langas Naujas pavadinimas. Adresas lauke Nuoroda nurodo diapazoną, kuris pasirenkamas vykdant komandą.
Rodomas vienas iš „Excel“ dialogo langų naudojant VBA.
Application.CommandBars.ExecuteMso „NameDefine“
Jūsų VBA kodas negali gauti jokios informacijos iš dialogo lango. Pavyzdžiui, jei vykdote kodą, kad būtų rodomas dialogo langas Naujas pavadinimas, jūsų kodas negalės gauti vartotojo įvesto pavadinimo arba įvardijamo diapazono.
ExecuteMso yra CommandBars objekto metodas ir priima vieną argumentą: idMso parametrą, kuris reiškia juostelės valdiklį. Deja, pagalbos sistemoje šie parametrai nepateikti. Ir kadangi juostelė nebuvo naudojama amžinai, kodas, kuriame naudojamas „ExecuteMso“ metodas, nesuderinamas su versijomis iki „Excel 2007“.
Štai dar vienas „ExecuteMso“ metodo naudojimo pavyzdys. Šis sakinys, kai vykdomas, rodo dialogo lango Format Cells skirtuką Šriftas:
Application.CommandBars.ExecuteMso
„FormatCellsFontDialog“
Jei bandote rodyti įtaisytąjį dialogo langą netinkamame kontekste, „Excel“ rodo klaidos pranešimą. Pavyzdžiui, čia pateikiamas teiginys, kuriame rodomas dialogo langas Format Number:
Application.CommandBars.ExecuteMso „NumberFormatsDialog“
Jei vykdote šį teiginį, kai jis netinkamas (pavyzdžiui, pasirinkta forma), „Excel“ parodys klaidos pranešimą, nes šis dialogo langas tinka tik darbalapio langeliams.
„Excel“ turi tūkstančius komandų. Kaip rasti reikiamo vardą? Vienas iš būdų yra naudoti dialogo lango „Excel“ parinktys skirtuką Tinkinti juostelę. Greitas būdas tai pasiekti – dešiniuoju pelės mygtuku spustelėti bet kurį juostelės valdiklį ir nuorodų meniu pasirinkti Tinkinti juostelę.
Beveik visos „Excel“ komandos yra pateiktos kairiajame skydelyje. Suraskite jums reikalingą komandą ir užveskite pelės žymeklį ant jos, o patarime pamatysite slaptą komandos pavadinimą (tai dalis skliausteliuose).
Skirtuko Tinkinti juostelę naudojimas komandos pavadinimui nustatyti.