VBA alat za prikaz informacija. Okvir za poruke u VBA Excelu - MsgBox Vba unos tipkovnicom

22.12.2020 Zanimljiv

Ispis (prijenos korisniku) rezultata programa i drugih poruka provodi se kroz dijaloški okvir poruka.

Za organizaciju izlaza informacija koristi se ugrađena funkcija MsgBox.

Razmotrimo opcije za njegovu upotrebu.

1. g = Sqr (16)

MsgBox y

2. S=99

MsgBox("S= ” & S)

to je znak ulančavanjeampersand;

koristi se za spajanje više linija u jednu

3. a = 5: b = 101

MsgBox("a="& a & " " & " b = " &b)

4.MsgBox("a=" & a & Chr(13) & "b=" & b)

pomoću ove funkcije koju unosite prijelazni simbol

na novom retku(pretvara broj u znak)

Rad s Excel objektima

Excel objektni model predstavlja hijerarhiju objekata podređenih jednom objektu Primjena, što odgovara na Excel aplikacija. Predmeti Excel su radne knjige, listovi, dijagrami, rasponi ćelija, ćelije itd.

VBA može programski manipulirati bilo kojim od ovih objekata.

Svaki objekt ima set Svojstva, metode I događanja.

Vlasništvo je karakteristika ili parametar objekta.

metoda je radnja koju objekt može izvesti.

Događaj je radnja na koju objekt automatski reagira.

Upravljanje objektom uVBAmožete to učiniti na 3 načina:

    mijenjanje svojstava objekta;

    aktiviranjem metode povezane s objektom;

    definiranje procedure koja će se pokrenuti kao odgovor na događaj.

Izlaz informacija u Excel ćeliju

Ćelija kao Excel objekt u VBA programu je naznačeno Ćelije (i, j), Gdje ja– broj retka, j– broj stupca proračunske tablice.

Y

Značenje Y bit će prikazan na aktivnom listu radna bilježnica Excel u ćeliju B3

= 0.01

Ćelije (3, 2) = Y

S

Varijabilna B bit će dodijeljena vrijednost

koji je pohranjen u ćeliji C5

(tj. sadržaj ćelije C5)

čitanje informacija iz Excel ćelije

B = ćelije (5, 3)

vba alat za unos podataka

Unos informacija od korisnika provodi se kroz dijaloški okvir za unos. Implementirano pomoću ugrađene funkcije InputBox.

Dim x kao singl

x = Val(InputBox("Unesite x"))

Funkcija InputBox vraća niz znakova unesenih u polje za unos ( 15 ) kao tip podataka Niz(niz). Ugrađena funkcija Val() Pretvara vrijednost niza iz polja za unos u numeričku vrijednost.

Linearni računalni procesi

Linearni algoritam karakterizira strogi redoslijed implementacije blokova redoslijedom njihovog rasporeda u krugu - od vrha do dna. Nema uvjetnih blokova. Svaki blok se izvodi jednom.

Primjer 1 Izračunajte vrijednost funkcije

pri k = 33,5 x = 17

1. Kreirajmo algoritam za rješavanje problema.

2. U prozor uređivača koda unesite programski kod:

Opcija Eksplicitno

Podlinearni_proces()

Dim k Kao pojedinačna, x kao pojedinačna, y kao pojedinačna'deklaracija varijabli

x = Val(InputBox("Unesite vrijednost x"))

y = k * Exp(Sin(x))

MsgBox "y="&y' izlaz rezultata u dijaloški okvir

End Sub

Tim Opcija Eksplicitno obvezuje deklarirati sve varijable u zadanom programu. Može se staviti samo u odjeljak s najavama modula.

1. Funkcija InputBox

Funkcija InputBox ima sljedeću sintaksu:

Varijabla = InputBox(Upit[, Naslov] [, zadano] [, Xpos] [, Ypos] [, datoteka_pomoći, sadržaj])

Ova funkcija zahtijeva samo argument Poziv Vrijednost argumenta Poziv– jedini traženi argument ove funkcije, služi tekstualni niz, koji se u dijaloškom okviru za unos prikazuje kao poruka. Ovaj tekst treba priložiti u dvostruki navodnici.

Argument Naslov

Argument zadano određuje vrijednost koja se prema zadanim postavkama prikazuje u polju za unos dok korisnik ne unese vrijednost. Ako je ovaj argument izostavljen, polje za unos će biti prazno.

Neobavezni argumenti Xpos I Ypos postavite položaj prozora za unos na ekranu. Argumenti datoteka_pomoći I sadržaj

Povratna vrijednost funkcije InputBox je vrijednost koju je korisnik unio u okvir za unos.

2. Funkcija MsgBox

Okvir s porukom stvara funkcija MsgBox koja ima sljedeću sintaksu:

Varijabla = MsgBox(Upit[, gumbi][, zaglavlje[, datoteka_pomoći, sadržaj])

Vrijednost argumenta Poziv– jedini potreban argument za ovu funkciju je tekstualni niz koji se prikazuje kao poruka u dijaloškom okviru. Ovaj tekst mora biti u dvostrukim navodnicima. Obratite pozornost na korištenje zagrada u sintaksi MsgBox - one pokazuju da je u ovom slučaju MsgBox funkcija koja vraća vrijednost. Ako su zagrade izostavljene, onda je to za VBA znak da ovaj izraz ne vraća vrijednost. Ako želite vratiti vrijednost, morate koristiti kôd sličan sljedećem:

Dim i kao cijeli broj

Rezultat pokretanja ovog koda u VBA bit će dijaloški okvir s tri gumba "Da", "Ne", "Odustani" i ikonom uskličnika u žutom trokutu.

Ako se ne da argument Gumbi, tada VBA nudi samo jedan gumb "OK". Argument Gumbi omogućuje vam upravljanje sljedećim parametrima prozora poruka:

¨ Broj gumba u prozoru.

¨ Vrste gumba i njihov položaj u prozoru.

¨ Ikone prikazane u prozoru.

¨ Koji je gumb dodijeljen prema zadanim postavkama.

¨ Način (modalitet) prozora s porukom.

Tablica 1 prikazuje moguće postavke za ovaj argument. Prva skupina vrijednosti postavlja broj i vrstu gumba. Drugi vam omogućuje odabir ikone prikazane u prozoru. Treći dodjeljuje zadani gumb. Četvrta grupa postavlja način rada prozora poruke. Za stvaranje konačne vrijednosti argumenta Gumbi Možete koristiti samo jednu vrijednost iz svake grupe, kombinirajući ih sa znakom plus.

Skupina Konstantno Značenje Opis
Grupa 1 vbOKOnly Prikazuje samo gumb OK (zadana postavka)
VbOKOdustani Prikazuje gumbe U redu i Odustani
VbAbortRetryIgnore Prikazuje gumbe Stop, Repeat i Skip.
VbDaNeOdustani Prikazuje gumbe Da, Ne i Odustani
vbDaNe Prikazuje gumbe Da i Ne
VbRetryCancel Prikazuje gumbe Ponovi i Odustani
Grupa 2 VbKritično Prikazuje ikonu zabrane
VbPitanje
VbUsklik Prikazuje ikonu upozorenja
VbInformacija Prikazuje informacijsku ikonu
Grupa 3 VbDefaultButton1 Prvi gumb je zadani gumb
VbDefaultButton2 Drugi gumb je zadani gumb
VbDefaultButton3 Treći gumb je zadani gumb
VbDefaultButton4 Četvrti gumb je zadani gumb
Grupa 4 VbApplicationModal Način rada aplikacije: Korisnik mora zatvoriti okvir s porukom prije nego što nastavi s trenutnom aplikacijom
VbSystemModal Način rada sustava: sve aplikacije su nedostupne dok korisnik ne zatvori prozor s porukom
Dodatna grupa vbMsgBoxHelpButton Prikazuje gumb Pomoć
vbMsgBoxSetForeground Prozor poruke čini prozorom u prvom planu
vbMsgBoxRight Prikazuje okvir s porukom poravnat s desnim rubom prozora aplikacije
vbMsgBoxRtlReading Za hebrejski i arapski, navodi da tekst treba biti prikazan s desna na lijevo.

Stol 1. Postavke za argument Gumbi MsgBox funkcije

Da biste izbjegli pogreške prilikom unosa vrijednosti argumenata Gumbi, koristite popis konstanti koji se pojavljuje nakon što unesete znak "+". Znak "+" koristi se za kombiniranje više konstanti prilikom navođenja složenog argumenta Gumbi.

Argument Naslov koristi se za određivanje teksta koji se nalazi u naslovnoj traci prozora za unos. Ako ovaj argument nije naveden, Microsoft Excel se prikazuje u naslovnoj traci.

Argumenti datoteka_pomoći I sadržaj koriste se ako izradite vlastiti sustav pomoći za svoju aplikaciju.

Tablica 2 daje popis vrijednosti koje vraća funkcija MsgBox . Povratna vrijednost ovisi o gumbu koji je korisnik pritisnuo.

Povratna vrijednost Dugme
u redu
Otkazati
Stop
Ponoviti
Preskočiti
Da
Ne

Stol 2. Vrijednosti koje je vratila funkcija MsgBox

Najbolji tip Povratna varijabla funkcije MsgBox je Integer.

Objekti Raspon i Ćelije

U VBA se ćelije radnog lista tretiraju kao objekti raspona. Ovo je najčešće korišteni objekt.

Objekt Range koristi format A1 kada radi sa ćelijama.

A1 format. Veza se sastoji od naziva stupca (označenog slovima od A do IV, najviše 256 stupaca) i broja retka (od 1 do 65536). Na primjer, A77. Za pozivanje na raspon ćelija navedite adrese gornje lijeve i donje desne ćelije raspona, odvojene dvotočkom. Na primjer, B10:B20, 7:7 (sve ćelije u 7. redu), 5:10 (sve ćelije između 5. i 10. reda uključujući), D:D (sve ćelije u stupcu D), H: J (sve ćelije između stupaca H i J uključivo). Apsolutna referenca označena je znakom dolara ispred naziva retka ili stupca

Objekt Cells koristi format R1C1 kada radi sa ćelijama.

R1C1 format. U formatu R1C1, nakon slova "R" naveden je broj retka ćelije, nakon slova "C" broj stupca. Na primjer, apsolutna referenca R1C1 ekvivalentna je apsolutnoj referenci $A$1 za format A1. Da biste postavili relativnu referencu, odredite pomak u odnosu na aktivnu ćeliju. Miješanje je navedeno u uglatim zagradama. Znak označava smjer pomaka. Na primjer, R[-3]C (relativna referenca na ćeliju tri retka više u istom stupcu). RC (relativna referenca na ćeliju koja se nalazi dva retka ispod i dva stupca s desne strane). R2S2 (apsolutna referenca na ćeliju koja se nalazi u drugom retku iu drugom stupcu). R[-1] (relativna referenca na redak iznad trenutna ćelija), R (apsolutna referenca na trenutni redak).

Puna adresa ćelije također može sadržavati ime i adresu radnika. Iza naziva lista nalazi se znak “!”, a adresa radne knjige je uglate zagrade. Na primjer: [Book1.xls]Sheet5!D$2.

Sljedeće može djelovati kao Range objekt:

§ odvojena ćelija;

§ odabrani raspon ćelija;

§ nekoliko odabranih raspona ćelija (tj. zbirka raspona koji nisu susjedni);

§ red i stupac;

§ trodimenzionalni raspon (tj. koji se sastoji od raspona koji se nalaze na različitim radnim listovima).

Svojstva objekta raspona i ćelija

Svojstva Opis i dopuštene vrijednosti
Vrijednost Vraća vrijednost iz ćelije ili raspona (u ćeliju ili raspon): X=Raspon(“A1”).Raspon vrijednosti(“A1”).Vrijednost=10
Ime Vraća naziv raspona: Range(“B1:B4”).Name=”Application”
Adresa Vraća trenutni položaj raspona
Računati Vraća broj ćelija u rasponu
Pomak Vraća vrijednost pomaka jednog raspona u odnosu na drugi
Promjena veličine Omogućuje promjenu trenutnog odabira raspona
CurrentRegion Vraća trenutni raspon koji sadrži navedenu ćeliju i omeđen je praznim retkom i stupcem.
WrapText True (False) – dopušta (ne dopušta) prelamanje teksta kada se unese u raspon.
Cijeli stupac, cijeli redak Vraća red i stupac.
Širina stupca, visina retka Vraća širinu stupca i visinu retka raspona.
Font Vraća objekt Font. Na primjer: S radnim listovima (“Z3”).Raspon (“F10”).Font .Veličina=22 .Podebljano=Istina .Italic=Istina Završi s
Formula Formula u A1 formatu. Na primjer, ovako možete unijeti formulu u ćeliju C2: Range(“C2”).Formula=”=$B$2+$A$2”
FormulaLocal Formula u formatu A1, uzimajući u obzir jezik korisnika (za neengleske verzije Excela). Na primjer: Raspon (“C1”).FormulaR1C1= “=PI ()”
FormulaR1C1 Formula u formatu R1C1. Na primjer, Range(“C1”).FormulaR1C1= “=R1C1+2”
FormulaR1C1Lokalno Formula u formatu R1C1 uzimajući u obzir korisnikov jezik (za neengleske verzije Excela).
Horizontalno poravnanje Horizontalno poravnanje. Moguće vrijednosti: xlHAlignGeneral (normalno), xlHAlignCenter (centar), xlHAlignCenterAcrossSelection (centar odabira), xlHAlignJustify (širina), xlHAlignRight (desno), xlHAlignLeft (lijevo) i druge.
Okomito poravnanje Okomito poravnanje. Moguće vrijednosti: xlVAlignBottom (na donjem rubu), xlVAlignCenter (u sredini), xlVAlignTop (na gornjem rubu) i druge.

Metode objekta Range i Cells

Metode Radnje
Adresa Vraća adresu ćelije.
AutoFit Automatski podešava širinu stupca i visinu retka. Na primjer: Range(“B1:B3”).Columns.AutoFit Korištenje svojstva Stupci ili Redovi u ovom slučaju je neophodno, budući da vrijednost raspona mora biti redova ili stupaca, inače će se pojaviti pogreška.
Čisto Briše raspon. Na primjer: Raspon (“B1:B20”). Očisti
Kopirati Kopira raspon u drugi raspon ili međuspremnik (ako Odredište nije navedeno). Na primjer, ovako možete kopirati vrijednosti raspona s jednog lista (L1) na drugi (L2): Worksheets(“Z1”).Range(“D1:D5”).Copy Destination:=Worksheets(“P2” ).Raspon (“D5”) ")
Izrezati Kopira raspon s brisanjem (reže) u drugi raspon ili međuspremnik (ako parametar Odredište nije naveden). Na primjer, kopirajmo raspon ćelija s brisanjem u međuspremnik: Worksheets(“Sheet1”).Range(“D1:E5”).Cut
Izbrisati Briše raspon. Parametar Shift određuje smjer u kojem se ćelije pomiču kada se izbrišu. Na primjer: Range(“B6:D6”).Delete Shift:=xlShiftToLeft
Umetnuti Umeće ćeliju ili raspon ćelija. Na primjer, ovako možete umetnuti redak prije šestog retka u listu "Sheet2": Worksheets("Sheet2").Retovi(6).Insert
Izaberi Odabire raspon: Raspon(“A1:C7”).Odaberi

Objektne metode Range i Cells koje implementiraju Excel naredbe

Metode Radnje
DataSeries Stvara progresiju. DataSeries(rowcol,date,step,stop,trend) Metoda se izvodi ručno pomoću naredbe Edit\Fill\Progression
Automatsko popunjavanje Automatsko dovršavanje. Automatski ispunjava ćelije raspona elementima niza: Objekt(Raspon, Vrsta).
AutoFilter Autofilter. Implementira zahtjev za filtriranje podataka na radnom listu: Object.AutoFilter(Field, Condition1, Operator, Condition2) Odgovara naredbi Data\Filter\AutoFilter.
Napredni filtar Napredni filter. Odgovara naredbi Data\Filter\Advanced Filter.
Konsolidirati Kombiniranje podataka iz više raspona u jednu konačnu tablicu. Odgovara naredbi Data\Consolidation.
Pronaći Pretraživanje podataka. Ručno pozvano naredbom Edit\Find.
TblGoalSeek Izbor parametra. To se radi ručno pomoću naredbe Alati\Odabir parametara.
Vrsta Razvrstavanje podataka. Ručno izvedeno pomoću naredbe Data\Sort
Međuzbroj Dodaje međuzbrojeve. Ručno se poziva naredbom Data\Subtotals.

Bilješka . Posebno treba napomenuti da se u VBA (za razliku od Excela) operacija dodjele izvodi bez obzira na status ćelije i ne mijenja ga. Oni. Da biste ćeliji dodijelili vrijednost (ili da biste dobili njezinu vrijednost), uopće nije potrebno da ta ćelija bude aktivna (sjetite se da u Excelu, prije nego što je unesete u ćeliju, ona mora biti aktivirana); ona neće postati aktivna (ako prije nije bilo tako) ni nakon dodjele nema nikakvo značenje.

U ovom ćete članku naučiti kako stvoriti okvir za poruke u VBA Excel, koji može prikazati razne informacije.

Funkcija MsgBox prikazuje okvir s porukom i čeka da korisnik klikne gumb, a zatim će se radnja izvršiti na temelju gumba koji je korisnik kliknuo.

Sintaksa

MsgBox(prompt[,gumbi][,naslov][,datoteka pomoći,kontekst])

Opis parametra

  • Zahtjev je obavezan parametar. Niz koji se pojavljuje kao poruka u dijaloškom okviru. Maksimalna duljina pozivnice - oko 1024 znaka. Ako se poruka proteže preko više od jednog retka, tada se reci mogu razdvojiti korištenjem znaka za povratak na novi red (Chr(13)) ili znakova za pomicanje retka (Chr(10)) između svakog retka.
  • Gumbi su izborni parametar. Numerički izraz koji određuje vrstu gumba za prikaz, stil ikone koji će se koristiti, zadani ID gumba i modalitet okvira za poruke. Ako se ostavi prazno, zadana vrijednost za gumbe je 0.
  • Naslov je izborni parametar. Izraz niza pojavljuje se u naslovnoj traci dijaloškog okvira. Ako je naslov ostavljen prazan, naziv aplikacije nalazi se u naslovnoj traci.
  • Datoteka pomoći je izborni parametar. String izraz koji identificira datoteku pomoći koja će se koristiti za pružanje pomoći osjetljive na kontekst za dijaloški okvir.
  • Kontekst je izborni parametar. Numerički izraz koji identificira broj konteksta pomoći dodijeljen autoru pomoći za odgovarajuću temu pomoći. Ako je naveden kontekst, mora se navesti i datoteka pomoći.

Parametar Buttons može uzeti bilo koji od sljedeće vrijednosti:

  • 0 vbOKOnly - prikazuje samo gumb OK.
  • 1 vbOKCancel - prikazuje gumbe OK i Cancel.
  • 2 vbAbortRetryIgnore - Prikazuje gumbe za odustajanje, ponovni pokušaj i ignoriranje.
  • 3 vbYesNoCancel - Prikazuje gumbe Da, Ne i Odustani.
  • 4 vbYesNo - prikazuje gumbe Yes i No.
  • 5 vbRetryCancel - prikazuje gumbe za ponovni pokušaj i odustajanje.
  • 16 vbCritical - prikazuje ikonu kritične poruke.
  • 32 vbPitanje - Prikazuje ikonu upozorenja.
  • 48 vbExclamation - Prikazuje ikonu poruke upozorenja.
  • 64 vbInformacija. Prikazuje ikonu informativne poruke.
  • 0 vbDefaultButton1 - prvi zadani gumb.
  • 256 vbDefaultButton2 - drugi zadani gumb.
  • 512 vbDefaultButton3 - Treći zadani gumb.
  • 768 vbDefaultButton4 - Četvrti zadani gumb.
  • 0 vbApplicationModal Modal aplikacije - trenutna aplikacija neće raditi dok korisnik ne odgovori na poruku.
  • 4096 vbSystemModal Modalni sustav - sve aplikacije neće raditi dok korisnik ne odgovori na poruku.

Gore navedene vrijednosti su logično podijeljene u četiri grupe: Prva grupa (0 do 5) označava gumbe koji će biti prikazani u okviru s porukom. Druga grupa (16, 32, 48, 64) opisuje stil ikone koja će biti prikazana, treća grupa (0, 256, 512, 768) označava koji bi gumb trebao biti zadani, a četvrta grupa (0, 4096) definira modalitet prozora poruke.

Povratne vrijednosti

Funkcija MsgBox može vratiti jednu od sljedećih vrijednosti, koje se mogu koristiti za prepoznavanje gumba koji je korisnik kliknuo u okviru s porukom.

  • 1 - vbOK - gumb OK pritisnut.
  • 2 - vbCancel - Pritisnut je gumb Odustani
  • 3 - vbAbort - Pritisnut je gumb za prekid
  • 4 - vbRetry - Gumb za ponovni pokušaj pritisnut
  • 5 - vbIgnore - Pritisnut je gumb Ignoriraj
  • 6 - vbDa - pritisnuta je tipka "Da".
  • 7 - vbNo - Nema klika

Sub MessageBox_Demo() "Jednostavna poruka MsgBox ("Zdravo") "Poruka s naslovom i gumbima da, ne i odustani a = MsgBox("Sviđa li vam se plava boja", 3, "Odaberite odgovor") "Kod pritisnutog gumb MsgBox ("Vrijednost odgovora " & a) End Sub

MsgBox korak po korak

Korak 1 - Gornju funkciju možete izvršiti klikom na gumb Pokreni u VBA prozoru ili klikom na gumb koji ste sami dodali na Excel list.

Korak 2 - Prikazuje se jednostavan tekstni okvir s porukom "Dobrodošli" i gumbom "OK".

"Ukratko smo se upoznali s dijaloškom porukom msgbox. Ali to je bila obična informativna poruka. Pogledajmo sada pobliže rad s funkcijom MsgBox i svim vrstama dijaloških poruka.

Sintaksa funkcije MsgBox

Funkcija MsgBox ima sljedeću sintaksu:

MsgBox( poruka [, konstante poruke] [, zaglavlje] [, hlp datoteka pomoći, kontekst pomoći] )

Obavezni parametar je “Message”, ostali se mogu izostaviti.

MsgBox “Tekst poruke

  • Konstante poruka- omogućuju vam da odredite vrstu dijaloga.
  • Naslov– postavlja naslov dijaloške forme.
  • Datoteka pomoćipomoć je izraz niza koji navodi naziv datoteke pomoći za dijaloški okvir.
  • Kontekst pomoći- numerički izraz koji označava broj konteksta datoteke pomoći za dijaloški okvir.

Prikaži dijalog:

kreira se sljedećom naredbom:
MsgBox "Tekst koji sadrži pitanje", vbYesNo, "Naslov poruke"

Za izradu ovakve poruke:

naredba će izgledati ovako:
MsgBox "Tekst koji sadrži pitanje", vbYesNoCancel, "Naslov poruke"

Ovakva poruka:

kreiran naredbom:
MsgBox "Tekst koji sadrži pitanje", vbAbortRetryIgnore, "Naslov poruke"

oni. Od sva tri primjera u naredbi mijenja se samo drugi parametar (vbYesNo, vbYesNoCancel, vbAbortRetryIgnore). Ovo su vrijednosti (konstante) koje određuju vrstu poruke. Parametri (vbYesNo, vbYesNoCancel) mogu se zamijeniti numeričkom vrijednošću, na primjer, dijaloški okvir vbYesNo može se pozvati navođenjem 4: MsgBox "Tekst koji sadrži pitanje", 4, "Naslov poruke".

Ispod je puni popis konstante i njihove ekvivalentne digitalne vrijednosti:

Konstantno

Značenje

Opis

vbOKOnly

Prikazuje poruku s gumbom u redu

vbOKOdustani

Prikazuje poruku s gumbima u redu I Otkazati

vbAbortRetryIgnore

Prikazuje poruku s gumbima Prekid, Ponoviti, Preskočiti

vbDaNeOdustani

Prikazuje poruku s gumbima Da, Ne, Otkazati.

Prikazuje poruku s gumbima Da I Ne

vbPokušajOdustani

Prikazuje poruku s gumbima Ponoviti I Otkazati

Poruke se mogu malo modificirati izgled, dodijeliti zadani gumb, dodati gumb Pomoć dodavanjem konstanti.

Na primjer: MsgBox "Tekst koji sadrži pitanje", vbYesNoCancel+vbInformation + vbMsgBoxHelpButton+vbDefaultButton2, "Naslov poruke" će sastaviti poruku poput:

vbInformacija- dodaje ikonu uzvika u poruku
vbMsgBoxHelpButton- dodaje gumb "Pomoć".
vbDefaultButton2- postavlja fokus na drugi gumb (" Ne")

Ispod je tablica s popisom konstanti ikona i konstanti koje postavljaju fokus na gumbe:

Konstantno

Značenje

Opis

vbKritično

Prikazuje ikonu kritična poruka(crveni oval s križem)

vbPitanje

Prikazuje ikonu sa upitnik

vbUsklik

Prikazuje ikonu sa uskličnik(u žutom trokutu)

vbInformacija

Prikazuje ikonu informativna poruka

vbDefaultButton1

Postavlja zadani fokus na prvi gumb

vbDefaultButton2

Postavlja zadani fokus na drugi gumb

vbDefaultButton3

Postavlja zadani fokus na treći gumb

vbDefaultButton4

Postavlja zadani fokus na četvrti gumb

vbMsgBoxHelpButton

Dodaje gumb Referenca

vbMsgBoxRight

Poravnajte tekst poruke udesno

vbMsgBoxRtlReading

Okreće sve elemente u poruci (pogledajte snimku ispod)

Kako mogu saznati koji je gumb u poruci korisnik kliknuo?

Izbor korisnika bit će određen pomoću . U nekim situacijama možete koristiti .

Na primjer, pozovimo poruku dvostrukim klikom na bilo koju ćeliju na listu. U ovoj ćeliji ćemo prema izboru korisnika prikazati tekst.

Napravite novu Excel radna knjiga i prijeđite u mod Visual Basic(Alt+F11). U prozoru projekta odaberite " List1"i dvaput kliknite na njega LMB-om.

U prozoru uređivača koda koji se otvori unesite sljedeći postupak:

Privatni sub Radni list_prije dvostrukog klika( ByVal Cilj Kao Raspon, Odustani Kao Booleov)

Ako MsgBox("Tekst koji sadrži pitanje", vbYesNo, "Naslov poruke") = vbYes Zatim
Odabir = "Pritisnuto YES"
Drugo
Odabir = "Pritisnuto Ne"
Završi ako

U IF uvjetu uspoređujemo rezultat koji vraća funkcija MsgBox s konstantom vbYes, tj. ako se u poruci pritisne gumb "". Da", tada funkcija MsgBox vraća vrijednost vbYes (6). Kompletan popis konstanti i njihovih digitalnih ekvivalenata nalazi se ispod. Sad probaj List 1 Dvaput kliknite na bilo koju ćeliju.

Bilješka: Kada se pozove poruka, izvršavanje programa se zaustavlja dok se ne primi odgovor od korisnika.

Druga opcija za pozivanje dijaloga pomoću .

Kreirajmo drugu proceduru na listu 2. Šifra procedure je sljedeća:

Privatni sub Radni list_prije dvostrukog klika( ByVal Cilj Kao Raspon, Odustani Kao Boolean)
Dim mes
mes = MsgBox("Tekst koji sadrži pitanje", vbYesNoCancel + vbInformation + vbDefaultButton2, "Naslov poruke")

Odaberite slučaj mes
Slučaj vbDa: Odabir = "DA pritisnut"
Slučaj vbNo: Odabir = "Pritisnuto NE"
Slučaj vbCancel: Odabir = "Odustani pritisnut"
Kraj Odaberite

U ovom slučaju, rezultat pozivanja MsgBoxa dodjeljuje se varijabli mes a onda se u Select Case traži podudaranje i prema podudaranju se izvode radnje.

To je sve. Ispod je gotov primjer o kojem se govori u ovom članku.

Popis konstanti i vrijednosti koje vraća funkcija MsgBox:

Konstantno

Značenje

Dugme

vbOdustani

Otkazati

Prekid

Ponoviti

vbIgnoriraj

Preskočiti

U VBA se unos i izlaz informacija (za interakciju korisnika) može obaviti u dijaloškim okvirima. Dijaloški okvir za unos vrijednosti implementiran je pomoću ugrađene funkcije InputBox. Prozor za unos, koji implementira funkcija InputBox, prikazuje polje za unos varijabilne vrijednosti u koje korisnik mora unijeti određenu vrijednost. Zatim korisnik mora kliknuti OK.

Funkcija InputBox() ima sljedeću sintaksu:

VariableName = InputBox(Prompt, , , , , , )

Gdje su argumenti: Upit ili Poruka - obavezni argument koji navodi informativnu poruku u dijaloškom okviru. Svi ostali argumenti nisu obavezni. Naslov određuje naslov prozora. Slika 1 prikazuje modul u kojem se koristi funkcija InputBox.


Riža. 1.

Nakon završetka modula 2 pojavljuje se prozor s porukom “Unos vrijednosti varijable” (slika 2) u koji je potrebno unijeti broj i kliknuti OK. Dijaloški prozor (slika 2), implementiran funkcijom InputBox (slika 1), prikazuje: Naslov prozora - Unos vrijednosti varijable; Poruka - Unesite broj; Gumbi (zadano) - U redu i Odustani; Polje namijenjeno za unos vrijednosti varijable.


Riža. 2.

Za prikaz informacija koriste se dijaloški okviri poruka koje implementira operater MsgBox ili funkciju MsgBox(). MsgBox se može koristiti kao operator. Izjava MsgBox prikazuje informacije u dijaloškom okviru i postavlja način čekanja da korisnik pritisne gumb.

Operator MsgBox ima sljedeću sintaksu:
MsgBox upit, , , ,

Gdje su argumenti: Upit ili Poruka - obavezni argument koji specificira informacijsku poruku koja će se prikazati u prozoru. Svi ostali argumenti nisu obavezni. Gumbi - gumbi koji se mogu koristiti u dijaloškom okviru poruke. U prozoru s porukama mogu se koristiti različiti gumbi (U redu, Odustani itd.). Ako ne navedete koji se gumbi prikazuju u okviru s porukom, prema zadanim postavkama prikazuje se gumb OK. Osim toga, možete koristiti različite ikone u dijaloškim okvirima za izlaz poruka (vbQuestion - ikona upitnika, vbExclamation - ikona uskličnika, itd.).

Modul u kojem se MsgBox koristi kao operator prikazan je na slici. 3 (operator MsgBox "3", vbOKCancel, "Izlazne vrijednosti").



Riža. 3

Kada se modul 4 pokrene na izvođenje, prikazuje se prozor s porukom “Izlazne vrijednosti” (slika 4), u kojem morate kliknuti gumb U redu. Prozor (Slika 4), koji implementira operator MsgBox (Slika 3), prikazuje: Naslov prozora - Prikaz vrijednosti; Poruka - 3; Gumbi - U redu i Odustani.


Riža. 4

Na primjer, za procjenu funkcije kao što je y = 5 x 2 + 7 x + 9, možete koristiti funkciju InputBox i operator MsgBox (Slika 5)



Riža. 5

Nakon završetka modula 5, prikazuje se prozor za unos


Riža. 6

Nakon što unesete broj, kao što je 789, i kliknete OK, pojavit će se okvir s porukom koji prikazuje rezultat funkcije y = 5 x 2 + 7 x + 9.


Riža. 7

MsgBox se može koristiti kao funkcija. Funkcija MsgBox() ima sljedeću sintaksu: MsgBox(Prompt, , , , ). U ovom se slučaju u dijaloškom prozoru koristi nekoliko različitih gumba. Kada kliknete gumb u dijaloškom okviru, funkcija MsgBox() vraća vrijednost cijelog broja koja ovisi o tome koji je gumb kliknut u dijaloškom okviru prikaza.