Název VBA

Tento článek předvede použití funkce VBA TypeName.

VBA TypeName Funkce se používá při určování typu dat uložených v buňce nebo typu vybraného objektu - například listu, rozsahu nebo buňky nebo ovládacího prvku ve formuláři.

Určení datového typu v buňce

K určení, zda byl v buňce datový typ, můžeme použít funkci TypeName s vlastností Cells.

123 Dílčí TestCellDataType ()MsgBox "Typ dat v" & Cells (3, 2) .Address & "is" & TypeName (Cells (3, 2) .Value)End Sub

Pokud spustíme tento kód výše s níže uvedeným listem, okno se zprávou nám řekne, jaký typ dat je v buňce.

Určení typu vybraného objektu

Můžeme také použít TypeName k určení, jaký typ objektu byl vybrán v listu - například rozsah nebo graf.

123 Dílčí testovací výběr ()MsgBox "Vybrali jste" & TypeName (výběr)End Sub

Nebo pokud vybereme graf:

Můžeme hlouběji procházet ještě dále a vybírat objekty v grafu a makro vrátí to, co jsme vybrali.

To vše může být nejužitečnější při budování našeho projektu VBA buď k řízení toku kódu, nebo k zamezení výskytu chyb testováním, aby se zajistilo, že je vybrán správný typ objektu, nebo je do buňky zadán správný typ dat .

Použití TypeName na ovládacích prvcích formuláře

VBA nám umožňuje vytvářet interaktivní formuláře, které může uživatel vyplňovat a vracet data do kódu, který má být použit různými způsoby. Můžeme použít operátor TypeName k určení typu ovládacích prvků, které se používají ve formuláři.

V níže uvedeném příkladu jsem vytvořil uživatelský formulář s řadou ovládacích prvků - několik textových polí, pole se seznamem, 2 tlačítka možností, 2 zaškrtávací políčka a 3 příkazová tlačítka.

Pomocí níže uvedeného kódu mohu určit, jaký typ ovládacích prvků je ve formuláři, opakováním všech ovládacích prvků ve formuláři. Použil jsem funkci TypeName k vrácení zprávy s typem ovládacího prvku pomocí příkazu VBA IF, abych zkontroloval, jaký typ ovládacího prvku je vybrán.

123456 Sub WhatControlType ()Dim ctl jako objektPro každý ctl In Me.ControlsMsgBox "Ovládací prvek je" & TypeName (ctl)Další ctlEnd Sub

Tento typ kódu může být velmi užitečný, pokud chceme povolit nebo zakázat ovládací prvky. V níže uvedeném kódu jsou při prvním otevření formuláře deaktivována tlačítka možností a zaškrtávací políčka.

123456789101112 Private Sub UserForm_Initialize ()Dim ctl jako objektPro každý ctl In Me.ControlsPokud TypeName (ctl) = "CheckBox" Pakctl.Enabled = FalseElseIf TypeName (ctl) = "OptionButton" Potomctl.Enabled = FalseJinýctl.Enabled = TrueKonec IfDalší ctlEnd Sub

Chcete -li povolit tlačítka možností a zaškrtávací políčka, napsal jsem za tlačítkem Povolit ovládací prvky další kód.

12345678910 Private Sub cmdEnable_Click ()Dim ctl jako objektPro každý ctl In Me.ControlsPokud TypeName (ctl) = "CheckBox" Pakctl.Enabled = Není ctl.EnabledElseIf TypeName (ctl) = "OptionButton" Potomctl.Enabled = Není ctl.EnabledKonec IfDalší ctlEnd Sub

Funkci v tomto kódu lze také vytvořit pomocí VBA TypeOf Operator.

wave wave wave wave wave