See artikkel näitab funktsiooni VBA TypeName funktsiooni kasutamist.
VBA TypeName Funktsiooni kasutatakse lahtrisse salvestatud andmete tüübi või valitud objekti tüübi - näiteks töölehe, vahemiku või lahtri või vormi juhtelemendi - määramiseks.
Andmetüübi määramine lahtris
Lahtris andmetüübi määramiseks saame kasutada funktsiooni TypeName koos atribuutidega Cells.
123 | Sub TestCellDataType ()MsgBox "Andmete tüüp lahtrites" & Cells (3, 2). Aadress & "on" & TypeName (Lahtrid (3, 2) .Väärtus)End Sub |
Kui käivitame selle koodi ülaltoodud töölehega, ütleb sõnumikast meile, millist tüüpi andmed lahtris on.
Valitud objekti tüübi määramine
Tüübi Nimi abil saame määrata ka seda, millist tüüpi objekt on töölehel valitud - näiteks vahemik või diagramm.
123 | Alamkatse valik ()MsgBox "Olete valinud" & TypeName (valik)End Sub |
Või kui valime diagrammi:
Saame veelgi süveneda ja valida diagrammi objektid ning makro tagastab selle, mille oleme valinud.
Kõik see võib olla kõige kasulikum meie VBA projekti ülesehitamisel, et kas kontrollida koodi voogu või vältida vigade ilmnemist, testides, et tagada õige objekti tüübi valimine või sisestada lahtrisse õiget tüüpi andmeid .
TypeName kasutamine vormi juhtelementides
VBA võimaldab meil luua interaktiivseid vorme, mida kasutaja saab täita ja tagastada andmed kasutatavale koodile mitmel viisil. Vormil kasutatavate juhtelementide tüübi määramiseks saame kasutada operaatorit TypeName.
Allolevas näites olen loonud kasutajavormi, millel on mitmesugused juhtnupud - paar tekstikasti, liitkast, 2 valikunuppu, 2 märkeruutu ja 3 käsunuppu.
Kasutades allolevat koodi, saan kindlaks teha, millist tüüpi juhtelemendid vormil on, lugedes läbi kõik vormi juhtelemendid. Olen kasutanud funktsiooni TypeName, et saata sõnum koos juhtelemendi tüübiga koos VBA IF avaldusega, et kontrollida, mis tüüpi juhtelement on valitud.
123456 | Sub WhatControlType ()Dim ctl kui objektIga ctl In Me.Controls jaoksMsgBox "Juhtelement on" & TypeName (ctl)Järgmine ctlEnd Sub |
Seda tüüpi kood võib olla väga kasulik, kui soovime juhtelemente lubada või keelata. Allolevas koodis on vormi esmakordsel avamisel valikunupud ja märkeruudud keelatud.
123456789101112 | Privaatne alamkasutajaForm_Initialize ()Dim ctl kui objektIga ctl In Me.Controls jaoksKui TypeName (ctl) = "CheckBox" Siisctl.Enabled = ValeElseIf TypeName (ctl) = "OptionButton" Siisctl.Enabled = ValeMuiductl.Enabled = TõsiLõpp KuiJärgmine ctlEnd Sub |
Valikunuppude ja märkeruutude lubamiseks olen kirjutanud nupu Luba juhtimine taha veel mõne koodi.
12345678910 | Privaatne alam cmdEnable_Click ()Dim ctl kui objektIga ctl In Me.Controls jaoksKui TypeName (ctl) = "CheckBox" Siisctl.Enabled = Pole ctl.LubatudElseIf TypeName (ctl) = "OptionButton" Siisctl.Enabled = Pole ctl.LubatudLõpp KuiJärgmine ctlEnd Sub |
Selle koodi funktsionaalsust saab luua ka VBA TypeOf operaatori abil.