VBA-typenaam

In dit artikel wordt het gebruik van de VBA TypeName-functie gedemonstreerd.

de VBA TypeNaam Functie wordt gebruikt bij het bepalen van het type gegevens dat is opgeslagen in een cel, of het type van een geselecteerd object - bijvoorbeeld een werkblad, bereik of cel, of een besturingselement op een formulier.

Het gegevenstype in een cel bepalen

Om te bepalen was het datatype in een cel kunnen we de TypeName functie gebruiken met de Cells Property.

123 Sub TestCellDataType()MsgBox "Het type gegevens in " & Cells(3, 2).Adres & " is " & TypeName(Cells(3, 2).Value)Einde sub

Als we deze code hierboven uitvoeren met het onderstaande werkblad, vertelt het berichtvenster ons welk type gegevens zich in de cel bevinden.

Het type geselecteerde object bepalen

We kunnen TypeName ook gebruiken om te bepalen welk type object is geselecteerd in een werkblad, bijvoorbeeld een bereik of een diagram.

123 Subtestselectie()MsgBox "U heeft een " & TypeName(Selection) geselecteerdEinde sub

Of, als we een grafiek selecteren:

We kunnen nog verder inzoomen en de objecten in de grafiek selecteren, en de macro geeft terug wat we hebben geselecteerd.

Dit alles kan het meest nuttig zijn bij het bouwen van ons VBA-project om ofwel de stroom van de code te beheersen, of om fouten te voorkomen door te testen om ervoor te zorgen dat het juiste type object wordt geselecteerd, of dat het juiste type gegevens in een cel wordt ingevoerd .

TypeName gebruiken op formulierbesturingselementen

VBA stelt ons in staat om interactieve formulieren te maken die de gebruiker kan invullen en gegevens terug te sturen naar de code om op verschillende manieren te gebruiken. We kunnen de operator TypeName gebruiken om het type besturingselementen te bepalen dat op een formulier wordt gebruikt.

In het onderstaande voorbeeld heb ik een gebruikersformulier gemaakt met een verscheidenheid aan bedieningselementen - een paar tekstvakken, een keuzelijst met invoervak, 2 keuzerondjes, 2 selectievakjes en 3 opdrachtknoppen.

Met behulp van de onderstaande code kan ik bepalen welk type besturingselementen op het formulier staan ​​door alle besturingselementen op het formulier te doorlopen. Ik heb de functie TypeName gebruikt om een ​​bericht terug te sturen met het type besturingselement met een VBA IF-statement om te controleren welk type besturingselement is geselecteerd.

123456 Sub WhatControlType()Dim ctl als objectVoor elke ctl In Me.ControlsMsgBox "Het besturingselement is een " & TypeName(ctl)volgende ctlEinde sub

Dit type code kan erg handig zijn als we bedieningselementen willen in- of uitschakelen. In de onderstaande code, wanneer het formulier voor het eerst wordt geopend, zijn de keuzerondjes en selectievakjes uitgeschakeld.

123456789101112 Private Sub UserForm_Initialize()Dim ctl als objectVoor elke ctl In Me.ControlsIf TypeName(ctl) = "CheckBox" Danctl.Enabled = FalseElseIf TypeName(ctl) = "OptionButton" Danctl.Enabled = FalseAndersctl.Enabled = TrueStop alsvolgende ctlEinde sub

Om de keuzerondjes en selectievakjes in te schakelen, heb ik wat meer code achter de knop Besturing inschakelen geschreven.

12345678910 Privé sub cmdEnable_Click()Dim ctl als objectVoor elke ctl In Me.ControlsIf TypeName(ctl) = "CheckBox" Danctl.Enabled = Niet ctl.EnabledElseIf TypeName(ctl) = "OptionButton" Danctl.Enabled = Niet ctl.EnabledStop alsvolgende ctlEinde sub

De functionaliteit in deze code kan ook worden gemaakt met behulp van de VBA TypeOf Operator.

U zal helpen de ontwikkeling van de site, het delen van de pagina met je vrienden

wave wave wave wave wave