VBA-ohjelmoijana oleminen voi toisinaan olla ylivoimaista. Yksi tapa tarkastella VBA:ta on se, että se on työkalu, jonka avulla voit matkia Excel-komentoja. Harkitse esimerkiksi tätä VBA-lausetta:
Alue("A1:A12").Nimi = "Kuukauden nimet"
Tämän VBA-käskyn suorittamisella on sama vaikutus kuin valitsemalla Kaavat → Määritetyt nimet → Määritä nimi, jolloin näyttöön tulee Uusi nimi -valintaikkuna, kirjoittamalla Kuukauden nimet Nimi-ruutuun ja A1:A12 Viittaukset-ruutuun ja napsauttamalla OK.
Kun suoritat VBA-käskyn, Uusi nimi -valintaikkuna ei tule näkyviin. Tämä on melkein aina mitä haluat tapahtuvan; et halua valintaikkunoiden vilkkuvan näytöllä makron suorittamisen aikana.
Joissakin tapauksissa saatat kuitenkin haluta koodisi näyttävän yhden Excelin monista sisäänrakennetuista valintaikkunoista ja antavan käyttäjän tehdä valintaikkunassa olevat valinnat. Voit tehdä tämän käyttämällä VBA:ta nauhakomennon suorittamiseen. Tässä on esimerkki, joka näyttää Uusi nimi -valintaikkunan. Refers To-ruudussa oleva osoite edustaa aluetta, joka valitaan, kun komento suoritetaan.
Yhden Excelin valintaikkunan näyttäminen VBA:n avulla.
Application.CommandBars.ExecuteMso “NameDefine”
VBA-koodisi ei saa mitään tietoja valintaikkunasta. Jos esimerkiksi suoritat koodin tuodaksesi Uusi nimi -valintaikkunan näkyviin, koodisi ei saa käyttäjän antamaa nimeä tai nimettävää aluetta.
ExecuteMso on CommandBars-objektin menetelmä ja hyväksyy yhden argumentin: idMso-parametrin, joka edustaa nauhaohjausobjektia. Valitettavasti näitä parametreja ei ole lueteltu ohjejärjestelmässä. Ja koska Ribbon ei ole ollut olemassa ikuisesti, ExecuteMso-menetelmää käyttävä koodi ei ole yhteensopiva Excel 2007:aa edeltävien versioiden kanssa.
Tässä on toinen esimerkki ExecuteMso-menetelmän käytöstä. Tämä lauseke, kun se suoritetaan, näyttää Muotoile solut -valintaikkunan Fontti-välilehden:
Application.CommandBars.ExecuteMso
"FormatCellsFontDialog"
Jos yrität näyttää sisäänrakennetun valintaikkunan väärässä kontekstissa, Excel näyttää virhesanoman. Esimerkiksi tässä on lauseke, joka näyttää Muotoile numero -valintaikkunan:
Application.CommandBars.ExecuteMso “NumberFormatsDialog”
Jos suoritat tämän käskyn, kun se ei ole sopiva (esimerkiksi muoto on valittu), Excel näyttää virheilmoituksen, koska tämä valintaikkuna sopii vain laskentataulukon soluille.
Excelissä on tuhansia komentoja. Kuinka voit löytää tarvitsemasi nimen? Yksi tapa on käyttää Excelin asetukset -valintaikkunan Mukauta nauhaa -välilehteä. Nopea tapa päästä sinne on napsauttaa hiiren kakkospainikkeella mitä tahansa valintanauhan ohjausobjektia ja valita pikavalikosta Mukauta nauhaa.
Lähes kaikki Excelissä käytettävissä olevat komennot on lueteltu vasemmassa paneelissa. Etsi tarvitsemasi komento ja vie hiiri sen päälle, niin näet sen salaisen komennon nimen työkaluvihjeessä (se on suluissa oleva osa).
Mukauta nauhaa -välilehden käyttäminen komennon nimen tunnistamiseen.