Ovaj članak će demonstrirati uporabu VBA funkcije ImeNaziv.
VBA ImeNaziv Funkcija se koristi za određivanje vrste podataka pohranjenih u ćeliji ili vrste odabranog objekta - na primjer radnog lista, raspona ili ćelije ili kontrole na obrascu.
Određivanje vrste podataka u ćeliji
Za određivanje je li tip podataka u ćeliji možemo koristiti funkciju TypeName sa svojstvom Cells.
123 | Pod TestCellDataType ()MsgBox "Vrsta podataka u" & ćelijama (3, 2). Adresa & "je" & Ime tipa (ćelije (3, 2). Vrijednost)Kraj podm |
Ako pokrenemo ovaj kôd s radnim listom u nastavku, okvir s porukom će nam reći koja je vrsta podataka u ćeliji.
Određivanje vrste odabranog objekta
Također možemo koristiti TypeName za određivanje vrste objekta koji je odabran na radnom listu - raspon ili grafikon, na primjer.
123 | Sub TestSelection ()MsgBox "Odabrali ste" & Naziv vrste (odabir)Kraj podm |
Ili, ako odaberemo grafikon:
Možemo još detaljnije istražiti i odabrati objekte unutar grafikona, a makro će vratiti ono što smo odabrali.
Sve ovo može biti najkorisnije u izgradnji našeg VBA projekta za kontrolu protoka koda ili za sprječavanje grešaka testiranjem kako bi se osiguralo da je odabrana ispravna vrsta objekta ili da se ispravna vrsta podataka unese u ćeliju .
Korištenje TypeName za kontrole obrazaca
VBA nam omogućuje stvaranje interaktivnih obrazaca koje korisnik može ispuniti i vratiti podatke u kôd koji će se koristiti na različite načine. Operator TypeName možemo koristiti za određivanje vrste kontrola koje se koriste na obrascu.
U donjem primjeru stvorio sam korisnički obrazac s raznim kontrolama - nekoliko tekstualnih okvira, kombinirani okvir, 2 gumba s opcijama, 2 potvrdna okvira i 3 naredbena gumba.
Koristeći donji kôd, mogu odrediti koja je vrsta kontrola na obrascu prolaskom kroz sve kontrole na obrascu. Koristio sam funkciju TypeName za vraćanje poruke s vrstom kontrole s VBA IF izjavom za provjeru vrste kontrole koja je odabrana.
123456 | Pod WhatControlType ()Priguši ctl kao objektZa svaki ctl u meni.KontroleMsgBox "Kontrola je" & Ime tipa (ctl)Sljedeća ctlKraj podm |
Ova vrsta koda može biti vrlo korisna ako želimo omogućiti ili onemogućiti kontrole. U donjem kodu, kada se obrazac prvi put otvori, gumbi s opcijama i potvrdni okviri onemogućeni su.
123456789101112 | Privatni pomoćni korisnički obrazac_Initialize ()Priguši ctl kao objektZa svaki ctl u meni.KontroleAko TypeName (ctl) = "CheckBox" Zatimctl.Enabled = NetačnoElseIf TypeName (ctl) = "OptionButton" Zatimctl.Enabled = NetačnoDrugoctl.Enabled = IstinaZavrši akoSljedeća ctlKraj podm |
Da bih omogućio gumbe s opcijama i potvrdne okvire, napisao sam dodatni kôd iza gumba Omogući kontrole.
12345678910 | Privatna pod cmdEnable_Click ()Priguši ctl kao objektZa svaki ctl u meni.KontroleAko TypeName (ctl) = "CheckBox" Zatimctl.Enabled = Nije ctl.EnabledElseIf TypeName (ctl) = "OptionButton" Zatimctl.Enabled = Nije ctl.EnabledZavrši akoSljedeća ctlKraj podm |
Funkcionalnost u ovom kodu također se može stvoriti pomoću operatora VBA TypeOf.