Korisnički oblik programa Excel VBA - Jednostavne makroe programa Excel

Sadržaj

Dodajte kontrole | Prikažite Userform | Dodijelite makronaredbe | Testirajte Userform

Ovo poglavlje vas uči kako stvoriti Korisnički obrazac programa Excel VBA. Userform koji ćemo stvoriti izgleda ovako:

Dodajte kontrole

Za dodavanje kontrola u Userform, izvedite sljedeće korake.

1. Otvorite Visual Basic Editor. Ako Project Explorer nije vidljiv, kliknite View, Project Explorer.

2. Pritisnite Umetni, Korisnički obrazac. Ako se Toolbox ne pojavi automatski, kliknite View, Toolbox. Zaslon bi trebao biti postavljen na sljedeći način.

3. Dodajte kontrole navedene u donjoj tablici. Nakon što je ovo dovršeno, rezultat bi trebao biti u skladu sa slikom Userform -a prikazanom ranije. Na primjer, stvorite kontrolu okvira za tekst klikom na TextBox iz okvira s alatima. Zatim možete povući tekstualni okvir na Userform. Kad dođete do okvira automobila, ne zaboravite prvo nacrtati ovaj okvir prije nego što u njega postavite dva gumba s opcijama.

4. Promijenite nazive i natpise kontrola prema donjoj tablici. Imena se koriste u Excel VBA kodu. Naslovi su oni koji se pojavljuju na vašem zaslonu. Dobra je praksa promijeniti nazive kontrola. Tako će se vaš kôd lakše čitati. Da biste promijenili nazive i natpise kontrola, kliknite Prikaz, prozor Svojstva i kliknite na svaku kontrolu.

Kontrolirati Ime Naslov
Korisnički obrazac DinnerPlannerUserForm Planer večera
Okvir za tekst NameTextBox
Okvir za tekst PhoneTextBox
Okvir s popisom CityListBox
Kombinirana kutija DinnerComboBox
Potvrdni okvir DateCheckBox1 13. lipnja
Potvrdni okvir DateCheckBox2 20. lipnja
Potvrdni okvir DateCheckBox3 27. lipnja
Okvir Okvir automobila Automobil
Gumb opcije CarOptionButton1 Da
Gumb opcije CarOptionButton2 Ne
Okvir za tekst MoneyTextBox
Okrenite gumb MoneySpinButton
Naredbeni gumb OK gumb u redu
Naredbeni gumb ClearButton Čisto
Naredbeni gumb Gumb za odustajanje Otkazati
7 naljepnica Nema potrebe za promjenom Ime :, Broj telefona: itd.

Napomena: kombinirani okvir je padajući popis na kojem korisnik može odabrati stavku ili ispuniti svoj izbor. Može se odabrati samo jedan od gumba opcija.

Prikažite Userform

Da biste prikazali Userform, postavite naredbeni gumb na svoj radni list i dodajte sljedeći kodni redak:

Privatna pomoćna naredbaButton1_Click ()
DinnerPlannerUserForm.Show
Kraj podm

Sada ćemo stvoriti Sub UserForm_Initialize. Kada koristite metodu Show za Userform, ova podmena će se automatski izvršiti.

1. Otvorite Visual Basic Editor.

2. U Project Exploreru desnom tipkom miša kliknite DinnerPlannerUserForm, a zatim kliknite View Code.

3. Odaberite Korisnički obrazac s lijevog padajućeg popisa. Odaberite Initialize s desnog padajućeg popisa.

4. Dodajte sljedeće retke koda:

Privatni pomoćni korisnički obrazac_Initialize ()
'Prazan NameTextBox
NameTextBox.Value = ""
'Prazan PhoneTextBox
PhoneTextBox.Value = ""
'Prazan CityListBox
CityListBox.Clear
'Popunite CityListBox
Uz CityListBox
.Dodajte stavku "San Francisco"
.Dodajte stavku "Oakland"
.Dodati stavku "Richmond"
Završi s
'Prazna večeraComboBox
DinnerComboBox.Jasno
'Ispunite DinnerComboBox
Uz DinnerComboBox
.Dodatak "Talijanski"
.AddItem "kineski"
.Dodajte stavku "Frites and Meso"
Završi s
'Poništite odabir polja DataCheckBoxes
DateCheckBox1.Value = Netačno
DateCheckBox2.Value = Netačno
DateCheckBox3.Value = Netačno
'Postavi kao zadani nijedan automobil
CarOptionButton2.Value = Tačno
'Prazan MoneyTextBox
MoneyTextBox.Value = ""
'Postavite fokus na NameTextBox
NameTextBox.SetFocus
Kraj podm

Objašnjenje: tekstualni okviri su ispražnjeni, okviri s popisima i kombinirani okviri ispunjeni, potvrdni okviri su neoznačeni itd.

Dodijelite makronaredbe

Sada smo stvorili prvi dio Userform -a. Iako već izgleda uredno, ništa se neće dogoditi kada kliknemo naredbene gumbe na korisničkom obrascu.

1. Otvorite Visual Basic Editor.

2. U Project Exploreru dvaput kliknite na DinnerPlannerUserForm.

3. Dvaput kliknite gumb Money spin.

4. Dodajte sljedeći kodni redak:

Privatna podznaka MoneySpinButton_Change ()
MoneyTextBox.Text = MoneySpinButton.Vrijednost
Kraj podm

Objašnjenje: ovaj kodni redak ažurira tekstualni okvir kada koristite gumb za okretanje.

5. Dvaput kliknite gumb U redu.

6. Dodajte sljedeće retke koda:

Privatna podkamera OKButton_Click ()
Zatamni prazanRed kao dugo
'Učinite Sheet1 aktivnim
List1.Aktiviraj
'Odredite emptyRow
emptyRow = Funkcija radnog lista.CountA (Raspon ("A: A")) + 1
'Prijenos informacija
Ćelije (emptyRow, 1) .Value = NameTextBox.Value
Ćelije (emptyRow, 2) .Value = PhoneTextBox.Value
Ćelije (emptyRow, 3) .Value = CityListBox.Value
Ćelije (emptyRow, 4) .Value = DinnerComboBox.Value
Ako je DateCheckBox1.Value = True onda ćelije (emptyRow, 5) .Value = DateCheckBox1.Caption
Ako je DateCheckBox2.Value = True, tada ćelije (emptyRow, 5) .Value = Cells (emptyRow, 5) .Vrijednost & "" & DateCheckBox2.Caption
Ako je DateCheckBox3.Value = True, tada ćelije (emptyRow, 5) .Value = Cells (emptyRow, 5) .Vrijednost & "" & DateCheckBox3.Caption
Ako je CarOptionButton1.Value = True Tada
Ćelije (emptyRow, 6) .Value = "Da"
Drugo
Ćelije (emptyRow, 6) .Value = "Ne"
Završi ako
Ćelije (emptyRow, 7) .Value = MoneyTextBox.Value
Kraj podm

Objašnjenje: prvo aktiviramo Sheet1. Zatim određujemo emptyRow. Varijabla emptyRow prvi je prazan redak i povećava se svaki put kad se doda zapis. Na kraju, podatke iz Userform -a prenosimo u određene stupce emptyRow.

7. Dvaput kliknite gumb Clear.

8. Dodajte sljedeći kodni redak:

Privatna podcista ClearButton_Click ()
Nazovite UserForm_Initialize
Kraj podm

Objašnjenje: ovaj kodni redak naziva Sub UserForm_Initialize kada pritisnete gumb Clear.

9. Dvaput kliknite gumb Otkaži.

10. Dodajte sljedeći kodni redak:

Privatni pododustanakButton_Click ()
Iskrcaj Me
Kraj podm

Objašnjenje: ovaj kodni redak zatvara Userform kada kliknete na gumb Odustani.

Testirajte Userform

Izađite iz uređivača Visual Basic, unesite dolje navedene oznake u redak 1 i testirajte Userform.

Proizlaziti:

Vi ćete pomoći u razvoju web stranice, dijeljenje stranicu sa svojim prijateljima

wave wave wave wave wave