Tämä artikkeli osoittaa VBA TypeName -toiminnon käytön.
VBA TypeName Toimintoa käytetään määrittämään soluun tallennettujen tietojen tyyppi tai valitun objektin tyyppi - esimerkiksi laskentataulukko, alue tai solu tai lomakkeen ohjausobjekti.
Datatyypin määrittäminen solussa
Sen määrittämiseksi, oliko tietotyyppi solussa, voimme käyttää TypeName -toimintoa Solut -ominaisuuden kanssa.
123 | Sub TestCellDataType ()MsgBox "Tietojen tyyppi" & Solut (3, 2) .Osoite & "on" & TypeName (Solut (3, 2). Arvo)End Sub |
Jos suoritamme tämän koodin yllä olevalla laskentataulukolla, viestiruutu kertoo meille, millaisia tietoja solussa on.
Valitun kohteen tyypin määrittäminen
Voimme myös käyttää TypeNamea määrittämään, minkä tyyppinen objekti on valittu laskentataulukkoon - esimerkiksi alue tai kaavio.
123 | Alatestivalinta ()MsgBox "Olet valinnut" & TypeName (valinta)End Sub |
Tai jos valitsemme kaavion:
Voimme porata vielä pidemmälle ja valita objektit kaaviosta, ja makro palauttaa valitsemamme.
Kaikki tämä voi olla hyödyllisintä rakennettaessa VBA -projektiamme joko ohjaamaan koodin kulkua tai estämään virheiden esiintymistä testaamalla varmistaaksemme, että oikea objektityyppi on valittu tai että oikeat tiedot syötetään soluun .
Tyypin nimen käyttäminen lomakeohjaimissa
VBA: n avulla voimme luoda interaktiivisia lomakkeita, joita käyttäjä voi täyttää ja palauttaa tiedot käytettävään koodiin eri tavoin. Voimme käyttää TypeName -operaattoria määrittämään lomakkeessa käytettävien ohjainten tyypin.
Alla olevassa esimerkissä olen luonut käyttäjälomakkeen, jossa on erilaisia säätimiä - pari tekstiruutua, yhdistelmäruutu, 2 asetuspainiketta, 2 valintaruutua ja 3 komentopainiketta.
Käyttämällä alla olevaa koodia voin selvittää, millaisia ohjaimia lomakkeessa on, selaamalla läpi kaikki lomakkeen ohjaimet. Olen käyttänyt TypeName -funktiota palauttaaksesi viestin, jossa on ohjausobjektin tyyppi ja VBA IF -lauseke, jotta voin tarkistaa, minkä tyyppinen ohjaus on valittu.
123456 | Sub WhatControlType ()Dim ctl objektinaJokaiselle ctl In Me.ControlilleMsgBox "Ohjaus on" & TypeName (ctl)Seuraava ctlEnd Sub |
Tämäntyyppinen koodi voi olla erittäin hyödyllinen, jos haluamme ottaa ohjaukset käyttöön tai poistaa ne käytöstä. Alla olevassa koodissa, kun lomake avataan ensimmäisen kerran, valintapainikkeet ja valintaruudut ovat poissa käytöstä.
123456789101112 | Yksityinen alikäyttäjäForm_Initialize ()Dim ctl objektinaJokaiselle ctl In Me.ControlilleJos TypeName (ctl) = "CheckBox" Sittenctl.Enabled = VääräElseIf TypeName (ctl) = "OptionButton" Sittenctl.Enabled = VääräMuuctl.Enabled = TottaLoppu JosSeuraava ctlEnd Sub |
Jos haluat ottaa käyttöön valintanapit ja valintaruudut, olen kirjoittanut jonkin lisäkoodin Ota ohjaimet käyttöön -painikkeen taakse.
12345678910 | Yksityinen ali cmdEnable_Click ()Dim ctl objektinaJokaiselle ctl In Me.ControlilleJos TypeName (ctl) = "CheckBox" Sittenctl.Enabled = Ei ctl.EnabledElseIf TypeName (ctl) = "OptionButton" Sittenctl.Enabled = Ei ctl.EnabledLoppu JosSeuraava ctlEnd Sub |
Tämän koodin toiminnot voidaan luoda myös VBA TypeOf -operaattorin avulla.