Instrument VBA pentru afișarea informațiilor. Caseta de mesaje în VBA Excel - MsgBox Vba introducere de la tastatură
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 concatenare – ampersand;
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
Celulele (3, 2) = Y
CU
Variabil B i se va atribui valoarea care este stocat în celulă C5 (adică conținutul celulei C5)
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 |
Î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) Selectați caz mes |
Î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.