Instrument VBA pentru afișarea informațiilor. Caseta de mesaje în VBA Excel - MsgBox Vba introducere de la tastatură

22.12.2020 Interesant

Ieșirea (transferul către utilizator) a rezultatelor programului și a altor mesaje se realizează prin caseta de dialog pentru mesaje.

Pentru a organiza ieșirea informațiilor, este utilizată funcția încorporată MsgBox.

Să luăm în considerare opțiunile pentru utilizarea sa.

1. y = Sqr(16)

MsgBox y

2. S=99

MsgBox("S= ” & S)

este un semn concatenareampersand;

folosit pentru a combina mai multe linii într-una singură

3. a = 5: b = 101

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

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

folosind această funcție pe care o introduceți simbol de tranziție

pe o linie nouă(transformă un număr într-un caracter)

Lucrul cu obiecte Excel

Model obiect Excel reprezintă o ierarhie de obiecte subordonate unui obiect Aplicație, care corespunde cu la aplicație Excel. Obiecte excela sunt registre de lucru, foi de lucru, diagrame, intervale de celule, celule etc.

VBA poate manipula în mod programatic oricare dintre aceste obiecte.

Fiecare un obiect are un set proprietăți, metodeȘi evenimente.

Proprietate este o caracteristică sau un parametru al unui obiect.

Metodă este o acțiune pe care o poate efectua un obiect.

Eveniment este o acțiune la care un obiect reacționează automat.

Gestionați un obiect înVBAo poti face in 3 moduri:

    modificarea proprietăților obiectului;

    prin activarea unei metode asociate unui obiect;

    definirea unei proceduri care va fi lansată ca răspuns la un eveniment.

Ieșirea informațiilor într-o celulă Excel

Celula ca obiect Excelîntr-un program VBA este desemnat celule (i, j), Unde i- Numărul de linie, j– numărul coloanei foii de calcul.

Y

Sens Y va fi afișat pe foaia activă registrul de lucru Excel la celulă B3

= 0.01

Celulele (3, 2) = Y

CU

Variabil B i se va atribui valoarea

care este stocat în celulă C5

(adică conținutul celulei C5)

citirea informațiilor dintr-o celulă Excel

B = celule (5, 3)

instrument vba pentru introducerea de informații

Introducerea informațiilor de la utilizator se realizează printr-o casetă de dialog de introducere. Implementat folosind o funcție încorporată InputBox.

Dim x As Single

X = Val(InputBox("Introduceți x"))

Funcţie InputBox returnează secvența de caractere introduse în câmpul de introducere ( 15 ) ca tip de date Şir(şir). Funcție încorporată Val() Convertește o valoare șir dintr-un câmp de intrare într-o valoare numerică.

Procese de calcul liniare

Algoritm liniar se caracterizează printr-o succesiune strictă de implementare a blocurilor în ordinea așezării lor în circuit - de sus în jos. Nu există blocuri condiționate. Fiecare bloc este executat o dată.

Exemplul 1 Calculați valoarea funcției

la k = 33,5 x = 17

1. Să creăm un algoritm pentru rezolvarea problemei.

2. În fereastra editorului de coduri, introduceți codul programului:

Opțiunea explicită

Sub-proces_liniar()

Dim k ca single, x ca single, y ca single„declararea variabilelor

x = Val(InputBox(„Introduceți valoarea lui x”))

y = k * Exp(Sin(x))

MsgBox „y="&y‘ a afișa rezultatul într-o casetă de dialog

End Sub

Echipă Opțiunea explicită obligă să declare toate variabilele dintr-un program dat. Poate fi plasat doar în secțiunea de anunțuri modulului.

1. Funcția InputBox

Funcția InputBox are următoarea sintaxă:

Variabila = InputBox(Prompt[, Titlu] [, implicit] [, Xpos] [, Ypos] [, help_file, contents])

Această funcție necesită doar argumentul Invitație Valoarea argumentului Invitație– singurul argument necesar al acestei funcții servește șir de text, care este afișat în caseta de dialog de introducere ca mesaj. Acest text ar trebui inclus în ghilimele duble.

Argument Titlu

Argument Mod implicit specifică valoarea care este afișată implicit în câmpul de introducere până când utilizatorul introduce o valoare. Dacă acest argument este omis, câmpul de intrare apare gol.

Argumente opționale XposȘi Ypos setați poziția ferestrei de introducere pe ecran. Argumente fişier_ajutorȘi conţinut

Valoarea returnată a funcției InputBox este valoarea introdusă de utilizator în caseta de intrare.

2. Funcția MsgBox

O casetă de mesaj este creată de funcția MsgBox, care are următoarea sintaxă:

Variabila = MsgBox(Solicitare[, Butoane][, Antet[, fișier_ajutor, conținut])

Valoarea argumentului Invitație– singurul argument necesar pentru această funcție este un șir de text care este afișat ca mesaj în caseta de dialog. Acest text trebuie inclus între ghilimele duble. Rețineți utilizarea parantezelor în sintaxa MsgBox - acestea indică faptul că în acest caz MsgBox este o funcție care returnează o valoare. Dacă parantezele sunt omise, atunci pentru VBA acesta este un semn că această expresie nu returnează o valoare. Dacă doriți să returnați o valoare, trebuie să utilizați un cod similar cu următorul:

Dim i ca întreg

Rezultatul rulării acestui cod în VBA va fi o casetă de dialog cu trei butoane „Da”, „Nu”, „Anulează” și o pictogramă cu semn de exclamare într-un triunghi galben.

Dacă nu se oferă niciun argument Butoane, atunci VBA oferă un singur buton „OK”. Argument Butoane vă permite să gestionați următorii parametri ai ferestrei de mesaje:

¨ Numărul de butoane din fereastră.

¨ Tipuri de butoane și plasarea lor în fereastră.

¨ Pictogramele afișate în fereastră.

¨ Care buton este atribuit implicit.

¨ Modul (modalitatea) ferestrei de mesaje.

Tabelul 1 prezintă setările posibile pentru acest argument. Primul grup de valori stabilește numărul și tipul de butoane. Al doilea vă permite să selectați pictograma afișată în fereastră. Al treilea atribuie butonul implicit. Al patrulea grup setează modul ferestrei de mesaje. Pentru a crea valoarea finală a argumentului Butoane Puteți utiliza o singură valoare din fiecare grup, combinându-le cu un semn plus.

grup Constant Sens Descriere
Grupa 1 vbOKOnly Afișează numai butonul OK (setare implicită)
VbOKAnulare Afișează butoanele OK și Cancel
VbAbortRetryIgnore Afișează butoanele Stop, Repeat și Skip.
VbDaNuAnulare Afișează butoanele Da, Nu și Anulare
vbDaNu Afișează butoanele Da și Nu
VbRetryAnulare Afișează butoanele Reface și Cancel
Grupa 2 VbCritic Afișează o pictogramă de interdicție
VbÎntrebare
VbExclamație Afișează o pictogramă de avertizare
VbInformații Afișează o pictogramă de informații
Grupa 3 VbDefaultButton1 Primul buton este butonul implicit
VbDefaultButton2 Al doilea buton este butonul implicit
VbDefaultButton3 Al treilea buton este butonul implicit
VbDefaultButton4 Al patrulea buton este butonul implicit
Grupa 4 VbApplicationModal Mod aplicație: utilizatorul trebuie să închidă caseta de mesaj înainte de a continua cu aplicația curentă
VbSystemModal Modul sistem: Toate aplicațiile sunt indisponibile până când utilizatorul închide fereastra de mesaje
Grup suplimentar vbMsgBoxHelpButton Afișează butonul Ajutor
vbMsgBoxSetForeground Face din fereastra mesajului fereastra din prim-plan
vbMsgBoxRight Afișează o casetă de mesaj aliniată la marginea dreaptă a ferestrei aplicației
vbMsgBoxRtlReading Pentru ebraică și arabă, specifică faptul că textul trebuie afișat de la dreapta la stânga.

Masa 1. Setări pentru argument Butoane Funcții MsgBox

Pentru a evita greșelile la introducerea valorilor argumentelor Butoane, utilizați lista de constante care apare după ce introduceți semnul „+”. Semnul „+” este folosit pentru a combina mai multe constante atunci când se specifică un argument complex Butoane.

Argument Titlu folosit pentru a specifica textul care este plasat în bara de titlu a ferestrei de introducere. Dacă acest argument nu este specificat, Microsoft Excel este afișat în bara de titlu.

Argumente fişier_ajutorȘi conţinut sunt utilizate dacă vă creați propriul sistem de ajutor pentru aplicația dvs.

Tabelul 2 oferă o listă de valori returnate de funcția MsgBox . Valoarea de returnare depinde de butonul apăsat de utilizator.

Valoare returnată Buton
Bine
Anulare
Stop
Repeta
Ocolire
da
Nu

Masa 2. Valori returnate de funcția MsgBox

Cel mai bun tip Variabila de returnare a funcției MsgBox este Integer.

Obiecte Range și Cells

În VBA, celulele foii de lucru sunt tratate ca obiecte Range. Acesta este obiectul cel mai des folosit.

Obiectul Range folosește formatul A1 atunci când lucrează cu celule.

format A1. Legătura constă dintr-un nume de coloană (desemnat cu literele de la A la IV, maximum 256 de coloane) și un număr de rând (de la 1 la 65536). De exemplu, A77. Pentru a face referire la un interval de celule, specificați adresele celulelor din stânga sus și din dreapta jos ale intervalului, separate prin două puncte. De exemplu, B10:B20, 7:7 (toate celulele din al 7-lea rând), 5:10 (toate celulele dintre rândurile 5 și 10 inclusiv), D:D (toate celulele din coloana D), H: J (toate celule între coloanele H și J inclusiv). O referință absolută este indicată printr-un semn dolar înaintea numelui rândului sau coloanei

Obiectul Cells folosește formatul R1C1 atunci când lucrează cu celule.

format R1C1. În formatul R1C1, după litera „R” este indicat numărul rândului celulei, după litera „C” numărul coloanei. De exemplu, referința absolută R1C1 este echivalentă cu referința absolută $A$1 pentru formatul A1. Pentru a seta o referință relativă, specificați decalajul relativ la celula activă. Amestecarea este indicată între paranteze drepte. Semnul indică direcția deplasării. De exemplu, R[-3]C (o referință relativă la o celulă cu trei rânduri mai sus în aceeași coloană). RC (referință relativă la o celulă situată două rânduri mai jos și două coloane în dreapta). R2С2 (referință absolută la celula situată în al doilea rând și în a doua coloană). R[-1] (referință relativă la linia de mai sus celula curentă), R (referință absolută la linia curentă).

Adresa completă a celulei poate conține, de asemenea, numele lucrătorului și adresa de carte. După numele foii există semnul „!”, iar adresa caietului de lucru este paranteza patrata. De exemplu: [Book1.xls]Sheet5!D$2.

Următoarele pot acționa ca obiect Range:

§ celula separata;

§ gama selectată de celule;

§ mai multe intervale selectate de celule (adică o colecție de intervale neadiacente);

§ rând și coloană;

§ interval tridimensional (adică format din intervale situate pe diferite foi de lucru).

Proprietățile obiectului interval și celule

Proprietăți Descriere și valori permise
Valoare Returnează o valoare dintr-o celulă sau un interval (la o celulă sau un interval): X=Range(„A1”).Value Range(„A1”).Value=10
Nume Returnează numele intervalului: Range(“B1:B4”).Name="Application”
Abordare Returnează poziția curentă a intervalului
Numara Returnează numărul de celule dintr-un interval
Decalaj Returnează valoarea offset a unui interval în raport cu altul
Redimensionați Vă permite să modificați selecția curentă a intervalului
CurrentRegion Returnează intervalul curent care conține celula specificată și este delimitat de un rând și o coloană goale.
Încadra textul Adevărat (Fals) – permite (nu permite) împachetarea textului atunci când este introdus în interval.
EntireColumn, EntireRow Returnează rândul și coloana.
ColumnWidth, RowHeight Returnează lățimea coloanei și înălțimea rândului unui interval.
Font Returnează un obiect Font. De exemplu: Cu foi de lucru(„Z3”).Range(„F10”).Font .Size=22 .Bold=True .Italic=True Se termină cu
Formulă Formula în format A1. De exemplu, așa puteți introduce o formulă în celula C2: Range(„C2”).Formula="=$B$2+$A$2”
FormulaLocal Formula în format A1, ținând cont de limba utilizatorului (pentru versiunile Excel non-engleze). De exemplu: Range(„C1”).FormulaR1C1= „=PI ()”
FormulaR1C1 Formula în format R1C1. De exemplu, Range(„C1”).FormulaR1C1= „=R1C1+2”
FormulaR1C1Local Formula în format R1C1 ținând cont de limba utilizatorului (pentru versiunile de Excel non-engleze).
Aliniere orizontala Aliniere orizontala. Valori posibile: xlHAlignGeneral (normal), xlHAlignCenter (centru), xlHAlignCenterAcrossSelection (centrul selecției), xlHAlignJustify (lățime), xlHAlignRight (dreapta), xlHAlignLeft (stânga) și altele.
Aliniere verticală Aliniere verticală. Valori posibile: xlVAlignBottom (la marginea de jos), xlVAlignCenter (la centru), xlVAlignTop (la marginea de sus) și altele.

Metodele obiectului Range și Cells

Metode Acțiuni
Abordare Returnează adresa celulei.
Potrivire automată Reglează automat lățimea coloanei și înălțimea rândului. De exemplu: Range(„B1:B3”).Columns.AutoFit Utilizarea proprietății Coloane sau Rânduri în acest caz este necesară, deoarece valoarea intervalului trebuie să fie rânduri sau coloane, în caz contrar se va produce o eroare.
clar Șterge intervalul. De exemplu: Interval(„B1:B20”).Clear
Copie Copiază un interval într-un alt interval sau clipboard (dacă Destinația nu este specificată). De exemplu, așa puteți copia valorile intervalului de pe o foaie (L1) în alta (L2): Foi de lucru ("З1"). Interval ("D1: D5"). Destinația copierii: = Foi de lucru ("P2" ).Interval ("D5") ")
A tăia Copiază intervalul cu ștergere (tăieri) într-un alt interval sau clipboard (dacă nu este specificat parametrul Destinație). De exemplu, să copiem un interval de celule cu ștergere în clipboard: Foi de lucru(„Foaie1”).Range(„D1:E5”).Tăiați
Șterge Șterge un interval. Parametrul Shift determină direcția în care celulele sunt deplasate atunci când sunt șterse. De exemplu: Range(„B6:D6”).Delete Shift:=xlShiftToLeft
Introduce Inserează o celulă sau un interval de celule. De exemplu, așa puteți insera un rând înainte de al șaselea rând în foaia „Sheet2”: Worksheets(„Sheet2”).Rows(6).Insert
Selectați Selectează un interval: Range ("A1:C7").Select

Metode obiect Range și Cells care implementează comenzi Excel

Metode Acțiuni
DataSeries Creează o progresie. DataSeries(rowcol,date,step,stop,trend) Metoda este efectuată manual folosind comanda Edit\Fill\Progression
Completare automată Completare automată. Umple automat celulele unui interval cu elemente ale secvenței: Object(Range, Type).
Filtrare automată Filtru automat. Implementează o solicitare de filtrare a datelor dintr-o foaie de lucru: Object.AutoFilter(Field, Condition1, Operator, Condition2) Corespunde cu comanda Data\Filter\AutoFilter.
AdvancedFilter Filtru avansat. Corespunde comenzii Data\Filter\Advanced Filter.
Consolida Combinarea datelor din mai multe intervale într-un singur tabel final. Corespunde comenzii Data\Consolidation.
Găsi Căutare de date. Apelat manual cu comanda Edit\Find.
TblGoalSeek Selectarea parametrului. Acest lucru se face manual folosind comanda Tools\Parameter Selection.
Fel Sortarea datelor. Efectuat manual folosind comanda Data\Sort
Subtotal Adaugă subtotaluri. Apelat manual prin comanda Data\Subtotals.

Notă . De remarcat mai ales că în VBA (spre deosebire de Excel) operația de atribuire se realizează indiferent de starea celulei și nu o modifică. Acestea. Pentru a atribui o valoare unei celule (sau pentru a obține valoarea acesteia), nu este deloc necesar ca această celulă să fie activă (rețineți că în Excel, înainte de a o introduce într-o celulă, trebuie activată); nu va deveni activă (daca nu era asa inainte) nici dupa atribuire nu are sens.

În acest articol veți învăța cum să creați o casetă de mesaje în VBA Excel, care poate afișa diverse informații.

Funcţie MsgBox afișează o casetă de mesaj și așteaptă ca utilizatorul să facă clic pe un buton și apoi acțiunea va fi efectuată pe baza butonului pe care a făcut clic de utilizator.

Sintaxă

MsgBox(prompt[,butoane][,titlu][,helpfile,context])

Descrierea parametrului

  • Solicitarea este un parametru obligatoriu. Un șir care apare ca mesaj într-o casetă de dialog. Lungime maxima invitații - aproximativ 1024 de caractere. Dacă un mesaj se extinde pe mai mult de o linie, atunci liniile pot fi separate utilizând un caracter de întoarcere la cărucior (Chr(13)) sau de avans de linie (Chr(10)) între fiecare linie.
  • Butoanele sunt un parametru opțional. O expresie numerică care specifică tipul de butoane de afișat, stilul pictogramei de utilizat, ID-ul implicit al butonului și modalitatea casetei de mesaje. Dacă este lăsat necompletat, valoarea implicită pentru butoane este 0.
  • Titlul este un parametru opțional. Expresia șir apare în bara de titlu a casetei de dialog. Dacă titlul este lăsat necompletat, numele aplicației este plasat în bara de titlu.
  • Fișierul de ajutor este un parametru opțional. O expresie String care identifică un fișier de ajutor care va fi utilizat pentru a oferi ajutor sensibil la context pentru caseta de dialog.
  • Contextul este un parametru opțional. O expresie numerică care identifică numărul contextului de ajutor atribuit autorului de ajutor subiectului de ajutor corespunzător. Dacă este furnizat context, trebuie furnizat și fișierul de ajutor.

Parametrul Buttons poate lua oricare dintre următoarele valori:

  • 0 vbOKOnly - afișează doar butonul OK.
  • 1 vbOKCancel - afișează butoanele OK și Cancel.
  • 2 vbAbortRetryIgnore - Afișează butoanele de anulare, reîncercare și ignorare.
  • 3 vbYesNoCancel - Afișează butoanele Da, Nu și Anulare.
  • 4 vbYesNo - afișează butoanele Da și Nu.
  • 5 vbRetryCancel - afișează butoanele de reîncercare și anulare.
  • 16 vbCritical - afișează pictograma mesajului critic.
  • 32 vbQuestion - Afișează o pictogramă de avertizare.
  • 48 vbExclamație - Afișează o pictogramă de mesaj de avertizare.
  • 64 vbInformații. Afișează o pictogramă de mesaj informativ.
  • 0 vbDefaultButton1 - primul buton implicit.
  • 256 vbDefaultButton2 - al doilea buton implicit.
  • 512 vbDefaultButton3 - Al treilea buton implicit.
  • 768 vbDefaultButton4 - Al patrulea buton implicit.
  • 0 vbApplicationModal Aplicație modală - aplicația curentă nu va funcționa până când utilizatorul nu răspunde la mesaj.
  • 4096 vbSystemModal System modal - toate aplicațiile nu vor funcționa până când utilizatorul nu răspunde la mesaj.

Valorile de mai sus sunt împărțite logic în patru grupuri: Primul grup (de la 0 la 5) indică butoanele care vor fi afișate în caseta de mesaje. Al doilea grup (16, 32, 48, 64) descrie stilul pictogramei care va fi afișat, al treilea grup (0, 256, 512, 768) indică ce buton ar trebui să fie implicit și al patrulea grup (0, 4096) definește modalitatea ferestrei de mesaje.

Valori returnate

Funcția MsgBox poate returna una dintre următoarele valori, care poate fi utilizată pentru a identifica butonul pe care utilizatorul a făcut clic în caseta de mesaj.

  • 1 - vbOK - butonul OK apăsat.
  • 2 - vbCancel - Buton Anulare apăsat
  • 3 - vbAbort - Butonul Abort este apăsat
  • 4 - vbRetry - Butonul Reîncercați apăsat
  • 5 - vbIgnore - Buton Ignorare apăsat
  • 6 - vbDa - este apăsat butonul „Da”.
  • 7 - vbNu - Fără clic

Sub MessageBox_Demo() "Mesaj simplu MsgBox ("Bună ziua") "Mesaj cu titlu și butoane da, nu și anulați a = MsgBox ("Îți place culoarea albastră", 3, "Alegeți un răspuns") "Codul celor apăsate butonul MsgBox („Valoarea răspunsului” și a) End Sub

MsgBox pas cu pas

Pasul 1 - Funcția de mai sus poate fi efectuată fie făcând clic pe butonul Run din fereastra VBA, fie făcând clic pe butonul pe care l-ați adăugat în foaia Excel.

Pasul 2 - O casetă de text simplă este afișată cu un mesaj „Bun venit” și un buton „OK”.

„Ne-am familiarizat pe scurt cu mesajul de dialog msgbox. Dar a fost un simplu mesaj de informare. Acum să aruncăm o privire mai atentă la lucrul cu funcția MsgBox și cu toate tipurile de mesaje de dialog.

Sintaxa funcției MsgBox

Funcția MsgBox are următoarea sintaxă:

MsgBox( mesaj [, constantele mesajului] [, antet] [, fișierul de ajutor hlp, contextul de ajutor] )

Parametrul necesar este „Mesaj”, restul poate fi omis.

MsgBox „Textul mesajului

  • Constantele mesajului- vă permit să determinați tipul de dialoguri.
  • Titlu– setează titlul formularului de dialog.
  • Fișier de ajutorhlp este o expresie șir care specifică numele fișierului de ajutor pentru caseta de dialog.
  • Contextul de ajutor- o expresie numerică care indică numărul de context al fișierului de ajutor pentru caseta de dialog.

Vizualizare dialog:

este creat de următoarea comandă:
MsgBox „Text care conține întrebarea”, vbYesNo, „Titlul mesajului”

Pentru a crea un mesaj ca acesta:

comanda va arăta astfel:
MsgBox „Text care conține întrebarea”, vbYesNoCancel, „Titlul mesajului”

Un mesaj ca acesta:

creat de comanda:
MsgBox „Text care conține întrebarea”, vbAbortRetryIgnore, „Titlul mesajului”

acestea. Din toate cele trei exemple din comandă, doar al doilea parametru se modifică (vbYesNo, vbYesNoCancel, vbAbortRetryIgnore). Acestea sunt valorile (constantele) care determină tipul de mesaj. Parametrii (vbYesNo, vbYesNoCancel) pot fi înlocuiți cu o valoare numerică, de exemplu, dialogul vbYesNo poate fi apelat prin specificarea 4: MsgBox „Text care conține întrebarea”, 4, „Titlul mesajului”.

Mai jos este lista plina constante și valorile lor digitale echivalente:

Constant

Sens

Descriere

vbOKOnly

Afișează un mesaj cu un buton Bine

vbOKAnulare

Afișează un mesaj cu butoane BineȘi Anulare

vbAbortRetryIgnore

Afișează un mesaj cu butoane Avorta, Repeta, Ocolire

vbDaNuAnulare

Afișează un mesaj cu butoane da, Nu, Anulare.

Afișează un mesaj cu butoane daȘi Nu

vbRetryCancel

Afișează un mesaj cu butoane RepetaȘi Anulare

Mesajele pot fi ușor modificate aspect, atribuiți un buton implicit, adăugați un buton Ajutor adăugând constante.

De exemplu: MsgBox „Text care conține o întrebare”, vbYesNoCancel+vbInformation + vbMsgBoxHelpButton+vbDefaultButton2, „Titlul mesajului” va crea un mesaj precum:

vbInformații- adaugă o pictogramă de exclamare la mesaj
vbMsgBoxHelpButton- adaugă un buton „Ajutor”.
vbDefaultButton2- setează focalizarea pe al doilea buton (" Nu")

Mai jos este un tabel cu o listă de constante de pictograme și constante care pun accentul pe butoane:

Constant

Sens

Descriere

vbCritic

Afișează o pictogramă mesaj critic(oval roșu cu cruce)

vbÎntrebare

Afișează o pictogramă cu semnul întrebării

vbExclamație

Afișează o pictogramă cu Semnul exclamarii(în triunghi galben)

vbInformații

Afișează o pictogramă mesaj informativ

vbDefaultButton1

Setează focalizarea implicită pe primul buton

vbDefaultButton2

Setează focalizarea implicită pe al doilea buton

vbDefaultButton3

Setează focalizarea implicită pe al treilea buton

vbDefaultButton4

Setează focalizarea implicită pe al patrulea buton

vbMsgBoxHelpButton

Adaugă un buton Referinţă

vbMsgBoxRight

Aliniați textul mesajului la dreapta

vbMsgBoxRtlReading

Întoarce toate elementele din mesaj (vezi instantaneul de mai jos)

Cum pot afla ce buton dintr-un mesaj pe care a făcut clic utilizatorul?

Alegerea utilizatorului va fi determinată folosind . În unele situații puteți utiliza .

De exemplu, să apelăm un mesaj făcând dublu clic pe orice celulă de pe foaie. În conformitate cu alegerea utilizatorului, vom afișa text în această celulă.

Creați unul nou Caietul de lucru Excelși intră în modul Visual Basic(Alt+F11). În fereastra proiectului selectați „ Foaia 1„și faceți clic pe el de două ori cu LMB.

În fereastra editorului de cod care se deschide, introduceți următoarea procedură:

Sub privat Foaia de lucru_BeforeDoubleClick( De ValŢintă La fel de Interval, Anulează La fel de boolean)

Dacă MsgBox(„Textul care conține întrebarea”, vbDaNu, „Titlul mesajului”) = vbDa Apoi
Selectare = „Apăsat DA”
Altfel
Selecție = „Apăsat Nu”
Încheiați dacă

În condiția IF, comparăm rezultatul returnat de funcția MsgBox cu constanta vbYes, adică. dacă butonul "" este apăsat în mesaj da", apoi funcția MsgBox returnează valoarea vbYes (6). O listă completă de constante și echivalentele lor digitale este mai jos. Acum încearcă Foaia 1 Faceți dublu clic pe orice celulă.

Notă: Când este apelat un mesaj, execuția programului se oprește până când se primește un răspuns de la utilizator.

A doua opțiune pentru a apela dialogul folosind .

Să creăm oa doua procedură pe foaia 2. Codul procedurii este următorul:

Sub privat Foaia de lucru_BeforeDoubleClick( De ValŢintă La fel de Interval, Anulează Ca boolean)
Dim mes
mes = MsgBox(„Textul care conține întrebarea”, vbYesNoCancel + vbInformation + vbDefaultButton2, „Titlul mesajului”)

Selectați caz mes
Caz vbDa: Selecție = „DA apăsat”
Caz vbNu: Selecție = „Apăsat NU”
Caz vbCancel: Selecție = „Anulați apăsat”
Încheierea selectării

În acest caz, rezultatul apelării MsgBox este atribuit unei variabile mes iar apoi în Select Case se caută o potrivire și, în funcție de potrivire, se efectuează acțiuni.

Asta e tot. Mai jos este un exemplu terminat discutat în acest articol.

Lista constantelor și valorilor returnate de funcție MsgBox:

Constant

Sens

Buton

vbAnulare

Anulare

Avorta

Repeta

vbIgnora

Ocolire

În VBA, introducerea și ieșirea informațiilor (pentru interacțiunea cu utilizatorul) se pot face în casete de dialog. Caseta de dialog pentru introducerea valorilor este implementată de funcția încorporată InputBox. Fereastra de introducere, implementată de funcția InputBox, afișează un câmp de introducere a valorii variabile în care utilizatorul trebuie să introducă o anumită valoare. Apoi, utilizatorul trebuie să facă clic pe OK.

Funcţie InputBox() are următoarea sintaxă:

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

Unde sunt argumentele: Prompt sau Message - un argument obligatoriu care specifică un mesaj informațional în caseta de dialog. Toate celelalte argumente sunt opționale. Titlu specifică titlul ferestrei. Figura 1 prezintă un modul în care este utilizată funcția InputBox.


Orez. 1.

După finalizarea modulului 2, apare fereastra de mesaj „Introducerea valorilor variabilelor” (Fig. 2), în care trebuie să introduceți un număr și să faceți clic pe OK. Fereastra de dialog (Fig. 2), implementată de funcția InputBox (Fig. 1), afișează: Titlul ferestrei - Introducerea valorilor variabilelor; Mesaj - Introduceți un număr; Butoane (implicit) - OK și Anulare; Un câmp destinat introducerii de valori variabile.


Orez. 2.

Pentru afișarea informațiilor sunt folosite casetele de dialog cu mesaje implementate de operator MsgBox sau funcție MsgBox(). MsgBox poate fi folosit ca operator. Declarația MsgBox afișează informații într-o casetă de dialog și setează modul să aștepte ca utilizatorul să apese un buton.

Operatorul MsgBox are următoarea sintaxă:
MsgBox Prompt, , , ,

Unde sunt argumentele: Prompt sau Message - un argument obligatoriu care specifică mesajul informativ care urmează să fie afișat în fereastră. Toate celelalte argumente sunt opționale. Butoane - Butoane care pot fi utilizate în caseta de dialog pentru mesaje. În fereastra de mesaje pot fi utilizate diverse butoane (OK, Anulare etc.). Dacă nu specificați ce butoane să afișați în caseta de mesaj, butonul OK este afișat implicit. În plus, puteți utiliza diferite pictograme în casetele de dialog de ieșire a mesajelor (vbQuestion - pictograma semn de întrebare, vbExclamation - pictograma semn de exclamare etc.).

Un modul în care MsgBox este utilizat ca operator este prezentat în Fig. 3 (operator MsgBox „3”, vbOKCancel, „Valori de ieșire”).



Orez. 3

Când modulul 4 este lansat pentru execuție, este afișată fereastra de mesaj „Valori de ieșire” (Fig. 4), în care trebuie să faceți clic pe butonul OK. Fereastra (Fig. 4), implementată de operatorul MsgBox (Fig. 3), afișează: Titlul ferestrei - Afișarea valorilor; Mesaj - 3; Butoane - OK și Anulare.


Orez. 4

De exemplu, pentru a evalua o funcție precum y = 5 x 2 + 7 x + 9, puteți utiliza funcția InputBox și operatorul MsgBox (Fig. 5)



Orez. 5

După finalizarea modulului 5, este afișată o fereastră de introducere


Orez. 6

După ce introduceți un număr, cum ar fi 789, și faceți clic pe OK, apare o casetă de mesaj care arată rezultatul funcției y = 5 x 2 + 7 x + 9.


Orez. 7

MsgBox poate fi folosit ca o funcție. Funcția MsgBox() are următoarea sintaxă: MsgBox(Prompt, , , , ). În acest caz, în fereastra de dialog sunt utilizate mai multe butoane diferite. Când se face clic pe un buton într-o casetă de dialog, funcția MsgBox() returnează o valoare întreagă care depinde de ce buton a fost făcut clic în caseta de dialog a mesajului.