Vba eszköz információk megjelenítéséhez. Üzenetdoboz VBA Excelben – MsgBox Vba billentyűzet bemenet

22.12.2020 Érdekes

A program eredményeinek és egyéb üzeneteknek a kimenete (továbbítása a felhasználóhoz) az üzenet párbeszédablakon keresztül történik.

Az információ kimenetének megszervezéséhez egy beépített funkciót használnak MsgBox.

Fontolja meg a felhasználási lehetőségeket.

1. y = Négyzet (16)

MsgBox y

2. S=99

MsgBox("S= ” & S)

ez egy jel összefűzésés és;

több sor egyesítésére szolgál

3. a=5: b=101

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

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

ezzel a funkcióval írja be átmeneti szimbólum

új vonalra(számot karakterré alakít)

Munka Excel objektumokkal

Excel objektummodell egy objektumnak alárendelt objektumok hierarchiáját képviseli Alkalmazás, ami megfelel nál nél Excel alkalmazás. Objektumok excel vannak munkafüzetek, munkalapok, diagramok, cellatartományok, cellák stb.

A VBA képes programozottan manipulálni ezen objektumok bármelyikét.

Minden egy tárgy van egy készlete tulajdonságait, módÉs eseményeket.

Ingatlan egy objektum jellemzője vagy paramétere.

Módszer egy olyan művelet, amelyet egy objektum végrehajthat.

Esemény olyan művelet, amelyre az objektum automatikusan reagál.

kezelni az objektumotVBA3 módon lehetséges:

    egy objektum tulajdonságainak megváltoztatása;

    az objektumhoz társított metódus meghívásával;

    egy eseményre adott válaszként lefutó eljárás meghatározása.

Információk megjelenítése Excel cellában

sejtszerű Excel objektum egy VBA programban van jelölve Cellák (i, j), Ahol én- sorszám j a táblázat oszlopának száma.

Y

Jelentése Y megjelenik az aktív lapon munkafüzet Excel cellába B3

= 0.01

Cells(3, 2) = Y

VAL VEL

változó Bérték lesz hozzárendelve

amelyet a cellában tárolnak C5

(azaz a cellatartalom C5)

információk olvasása Excel cellából

B = Cellák(5, 3)

vba beviteli eszköz

A felhasználótól származó információbevitel a beviteli párbeszédpanelen keresztül történik. Beépített funkcióval megvalósítva InputBox.

Dim x As Single

x = Val(InputBox("Enter x"))

Funkció InputBox a beviteli mezőbe beírt karaktersorozatot adja vissza ( 15 ) adattípusként Húr(húr). beépített funkció Val() karakterlánc-értéket alakít át beviteli mezőből numerikus értékké.

Lineáris számítási folyamatok

Lineáris algoritmus jellemzi a blokkok végrehajtásának szigorú sorrendje a sémában való elhelyezkedésük sorrendjében - felülről lefelé. Nincsenek feltételes blokkok. Minden blokk egyszer végrehajtásra kerül.

1. példa Számítsa ki a függvény értékét

k = 33,5 x = 17-nél

1. Állítsunk össze egy algoritmust a probléma megoldására.

2. A kódszerkesztő ablakban írja be a program kódját:

Explicit opció

Sublinear_Process()

Dim k As Single, x As Single, y As Single‘változódeklaráció

x = Val(InputBox("Adja meg az x értéket"))

y = k * Exp(Sin(x))

MsgBox "y=" & y' megjeleníti az eredményt egy párbeszédpanelen

vége al

Csapat Explicit opció köteles az adott programban szereplő összes változót deklarálni. Csak egy modul deklarációs részében helyezhető el.

1. InputBox funkció

Az InputBox függvény a következő szintaxissal rendelkezik:

Változó = InputBox(Prompt[, Title] [, default] [, Xpos] [, Ypos] [, help_file, content])

Ehhez a függvényhez csak egy argumentum szükséges. MeghívásÉrvérték Meghívás ennek a függvénynek az egyetlen kötelező argumentuma, ez szolgál szöveges karakterlánc, amely üzenetként jelenik meg a beviteli párbeszédpanelen. Ennek a szövegnek benne kell lennie dupla idézőjelek.

Érv fejléc

Érv alapértelmezett beállítja azt az értéket, amely alapértelmezés szerint megjelenik a beviteli mezőben, amíg a felhasználó be nem írja az értékét. Ha ez az argumentum kimarad, a beviteli mező üresen jelenik meg.

Választható érvek XposÉs Yposállítsa be a beviteli ablak pozícióját a képernyőn. Érvek help_fileÉs tartalom

Az InputBox függvény visszatérési értéke a felhasználó által a beviteli mezőbe beírt érték.

2. MsgBox funkció

Az üzenetdobozt az MsgBox függvény hozza létre, amelynek szintaxisa a következő:

Változó = MsgBox(Prompt[, Buttons] [, Title [, help_file, tartalom])

Érvérték Meghívás- az egyetlen kötelező argumentum ehhez a függvényhez egy szöveges karakterlánc, amely üzenetként jelenik meg a párbeszédpanelen. Ezt a szöveget idézőjelek közé kell tenni. Vegye figyelembe a zárójelek használatát az MsgBox szintaxisában – ezek azt jelzik, hogy ebben az esetben az MsgBox egy olyan függvény, amely valamilyen értéket ad vissza. Ha a zárójeleket kihagyjuk, akkor a VBA esetében ez annak a jele adott kifejezés nem ad vissza értéket. Ha értéket szeretne visszaadni, a következő kódot kell használnia:

Dim i As Integer

Az ilyen kód VBA-ban való futtatásának eredménye egy párbeszédpanel lesz három gombbal: "Igen", "Nem", "Mégse" és egy felkiáltójel ikonnal egy sárga háromszögben.

Ha nem adnak érvet Gombok, akkor a VBA csak egy „OK” gombot kínál. Érv Gombok lehetővé teszi a következő üzenetmező-beállítások vezérlését:

¨ Az ablakban lévő gombok száma.

¨ A gombok típusai és x elhelyezése az ablakban.

¨ Az ablakban megjelenő ikonok.

¨ Melyik gomb van alapértelmezés szerint hozzárendelve.

¨ Az üzenetablak módja (modalitása).

Az 1. táblázat mutatja az argumentum lehetséges beállításait. Az első értékcsoport a gombok számát és típusát állítja be. A második lehetővé teszi az ablakban megjelenő ikon kiválasztását. A harmadik hozzárendel egy alapértelmezett gombot. A negyedik csoport az üzenetdoboz módot állítja be. Egy argumentum végső értékének létrehozása Gombok minden csoportból csak egy értéket használhat, ha azokat pluszjellel kombinálja.

Csoport Állandó Jelentése Leírás
1. csoport vbOKOnly Csak az OK gombot jeleníti meg (alapbeállítás)
VbOKMégse Megjeleníti az OK és a Mégse gombokat
VbAbortRetryIgnore Megjeleníti a Stop, Repeat és Skip gombokat.
VbYesNoCancel Megjeleníti az Igen, Nem és Mégse gombokat
vbIgenNem Megjeleníti az Igen és a Nem gombokat
VbRetryCancel Megjeleníti az Újra és Mégse gombokat
2. csoport VbCritical Megjelenít egy tiltó ikont
VbQuestion
VbFelkiáltás Figyelmeztető ikont jelenít meg
VbInformáció Információs ikont jelenít meg
3. csoport VbDefaultButton1 Az első gomb az alapértelmezett gomb
VbDefaultButton2 A második gomb az alapértelmezett gomb
VbDefaultButton3 A harmadik gomb az alapértelmezett gomb
VbDefaultButton4 A negyedik gomb az alapértelmezett gomb
4. csoport VbApplicationModal Alkalmazás mód: A felhasználónak be kell zárnia az üzenetdobozt, mielőtt folytatná az aktuális alkalmazást
VbSystemModal Rendszer mód: az összes alkalmazás nem érhető el, amíg a felhasználó be nem zárja az üzenetdobozt
További csoport vbMsgBoxHelpButton Megjelenít egy Súgó gombot
vbMsgBoxSetForeground Az üzenetdobozt az előtér ablakává teszi
vbMsgBoxRight Üzenetdobozt jelenít meg az alkalmazás ablakának jobb széléhez igazítva
vbMsgBoxRtlReading Héber és arab esetén megadja, hogy a szöveget jobbról balra kell megjeleníteni.

Tab. 1. Érvbeállítások Gombok MsgBox funkciók

Annak érdekében, hogy ne hibázzon az argumentumértékek megadásakor Gombok, használja a „+” jel beírása után megjelenő konstanslistát. A "+" jel több állandó kombinálására szolgál összetett argumentum megadásakor Gombok.

Érv fejléc A beviteli ablak címsorába kerülő szöveg megadására szolgál. Ha ez az argumentum nincs megadva, a Microsoft Excel megjelenik a címsorban.

Érvek help_fileÉs tartalom akkor használatosak, ha saját súgórendszert hoz létre az alkalmazáshoz.

A 2. táblázat felsorolja az MsgBox függvény által visszaadott értékeket . A visszatérési érték a felhasználó által megnyomott gombtól függ.

Visszatérési érték Gomb
rendben
Megszünteti
Állj meg
Ismétlés
Kihagyás
Igen
Nem

Tab. 2. Az MsgBox függvény által visszaadott értékek

Legjobb típus Az MsgBox függvény visszatérési változója Integer.

Tartomány és cellák objektumok

A VBA-ban a munkalap celláit Range objektumként kezeli. Ez a leggyakrabban használt elem.

A Range objektum az A1 formátumot használja, amikor cellákkal dolgozik.

A1 formátum. A hivatkozás egy oszlopnévből (A-tól IV-ig terjedő betűkkel jelölve, legfeljebb 256 oszlop) és egy sorszámból (1-től 65536-ig) áll. Például A77. Egy cellatartományra való hivatkozáshoz a tartomány bal felső és jobb alsó cellájának címét kettősponttal elválasztva kell megadni. Például B10:B20, 7:7 (a 7. sor összes cellája), 5:10 (az 5. és 10. sor közötti összes cella), D:D (a D oszlop összes cellája), H: J (az összes cella között H és J oszlopot beleértve). Az abszolút hivatkozás egy dollárjel a sor vagy oszlop neve előtt.

A Cells objektum az R1C1 formátumot használja, amikor cellákkal dolgozik.

R1C1 formátum. Az R1C1 formátumban az "R" betű után a cella sorszáma, a "C" betű után az oszlop száma látható. Például az R1C1 abszolút hivatkozás megegyezik az A1 formátum $A$1 abszolút hivatkozásával. Relatív hivatkozás beállításához az aktív cellához viszonyított eltolást kell megadni. A keverés szögletes zárójelben van feltüntetve. A jel az elmozdulás irányát jelzi. Például R[-3]C (egy relatív cellahivatkozás három sorral magasabban ugyanabban az oszlopban). RC (relatív cellahivatkozás két sorral lefelé és két oszloppal jobbra). R2C2 (abszolút hivatkozás a második sorban és a második oszlopban található cellára). R[-1] (relatív hivatkozás a fenti sorra aktuális cella), R (abszolút hivatkozás az aktuális vonalra).

A cella teljes címe tartalmazhatja a dolgozó nevét és a könyv címét is. A lap neve után a "!" jel kerül, és benne van a könyv címe szögletes zárójelek. Például: [Könyv1.xls]Sheet5!D$2.

A Range objektum lehet:

§ külön cella;

§ kiválasztott cellatartomány;

§ több kiválasztott cellatartomány (azaz nem szomszédos tartományok halmaza);

§ sor és oszlop;

§ egy háromdimenziós tartomány (azaz különböző munkalapokon elhelyezkedő tartományokból áll).

Tartomány és cellák objektum tulajdonságai

Tulajdonságok Leírás és érvényes értékek
érték Értéket ad vissza egy cellából vagy tartományból (cellába vagy tartományba): X=Tartomány("A1").Értéktartomány("A1").Érték=10
Név A tartomány nevét adja vissza: Range("B1:B4").Name="Alkalmazás"
cím A tartomány aktuális pozícióját adja vissza
Számol Egy tartomány celláinak számát adja vissza
beszámítás Egy tartomány eltolási értékét adja vissza a másikhoz képest
átméretezni Lehetővé teszi az aktuális tartomány kiválasztását
CurrentRegion A megadott cellát tartalmazó, üres sorral és oszloppal elválasztott aktuális tartományt adja vissza.
wraptext Igaz (hamis) – lehetővé teszi (nem engedélyezi) a szöveg tördelését egy tartományba való belépéskor.
EntireColumn, EntireRow Egy sort és egy oszlopot ad vissza.
ColumnWidth, RowHeight Egy tartomány oszlopszélességét és sormagasságát adja vissza.
Betűtípus Egy Font objektumot ad vissza. Például: Munkalapokkal (“Z3”). Tartomány (“F10”). Betűtípus .Méret=22 .Bold=True .Dőlt=Igaz Vége ezzel
Képlet Képlet A1 formátumban. Például így írhat be egy képletet a C2 cellába: Tartomány(“C2”).Formula=”=$B$2+$A$2”
FormulaLocal Képlet A1 formátumban, figyelembe véve a felhasználó nyelvét (az Excel nem angol verzióinál). Például: Tartomány(“C1”). FormulaR1C1= “=PI ()”
FormulaR1C1 Képlet R1C1 formátumban. Például: Tartomány(“C1”). FormulaR1C1= “=R1C1+2”
FormulaR1C1Local A képlet R1C1 formátumú, a felhasználó nyelve alapján (az Excel nem angol verzióihoz).
Vízszintes igazítás vízszintes igazítás. Lehetséges értékek: xlHAlignGeneral (normál), xlHAlignCenter (középen), xlHAlignCenterAcrossSelection (kiválasztási központ), xlHAlignJustify (szélesség), xlHAlignRight (jobbra), xlHAlignLeft (balra) és mások.
Függőleges igazítás Függőleges igazítás. Lehetséges értékek: xlVALignBottom (alul), xlVALignCenter (középen), xlVALignTop (fent) és mások.

Tartomány és sejtek objektum módszerek

Mód Műveletek
cím A cella címét adja vissza.
autofit Automatikusan beállítja az oszlop szélességét és a sor magasságát. Például: Range(“B1:B3”).Columns.AutoFit Ebben az esetben a Columns vagy Rows tulajdonság használata szükséges, mivel a tartomány értékének soroknak vagy oszlopoknak kell lenniük, különben hiba keletkezik.
Egyértelmű Tartomány törlése. Például: Tartomány(“B1:B20”).Clear
Másolat Egy tartományt egy másik tartományra vagy vágólapra másol (ha a cél nincs beállítva). Például így másolhatja át a tartományértékeket egyik lapról (L1) a másikra (L2): Worksheets("Z1").Tartomány("D1:D5").Cél másolása:=Worksheets("P2" ).Tartomány("D5 ")
Vágott Egy törölt tartományt másol (kivág) egy másik tartományra vagy vágólapra (ha a Destination paraméter nincs beállítva). Például másoljunk egy cellatartományt törléssel a vágólapra: Worksheets("Sheet1").Tartomány("D1:E5").Cut
Töröl Töröl egy tartományt. A Shift paraméter határozza meg, hogy a cellák milyen irányba tolódnak el törléskor. Például: Range(“B6:D6”). Delete Shift:=xlShiftTo Left
Beszúrás Beszúr egy cellát vagy cellatartományt. Például így illeszthet be egy sort a "Sheet2" lap hatodik sora elé: Munkalapok("Sheet2").Sorok(6).Beszúrás
Válassza ki Tartomány kiválasztása: Tartomány(“A1:C7”).Válassza ki

Range és Cells objektummetódusok, amelyek Excel-parancsokat valósítanak meg

Mód Műveletek
DataSeries Progressziót hoz létre. DataSeries(sorcol,dátum,lépés,stop,trend) A kézi módszer az Edit\Fill\Progress paranccsal hajtható végre
automatikus kitöltés Automatikus kiegészítés. Automatikusan kitölti a tartomány celláit a sorozat elemeivel: Object(Tartomány, Típus).
Automatikus szűrő Automatikus szűrő. Lekérdezést valósít meg a munkalapon lévő adatok szűrésére: Object.AutoFilter(Mező, Feltétel1, Operátor, Feltétel2) A Data\Filter\AutoFilter parancsnak felel meg.
fejlett szűrő Speciális szűrő. Megfelel a Data\Filter\Advanced Filter parancsnak.
Konszolidálni Több tartomány adatainak összevonása egy összefoglaló táblázatban. Megfelel a Data\Consolidate parancsnak.
megtalálja Adatkeresés. Manuálisan hívja meg a Szerkesztés\Keresés parancs.
TblGoalSeek Paraméter kiválasztása. Manuálisan a Service\Parameter Selection paranccsal végrehajtva.
Fajta Adatok rendezése. Manuálisan végrehajtva a Data\Sort paranccsal
részösszeg Részösszegeket ad hozzá. Manuálisan hívja meg a Data\Subtotals paranccsal.

jegyzet . Külön meg kell jegyezni, hogy a VBA-ban (ellentétben az Excellel) a hozzárendelési művelet a cella állapotától függetlenül történik, és nem változtatja meg azt. Azok. egy cellához érték hozzárendeléséhez (vagy értékének lekéréséhez) egyáltalán nem szükséges, hogy ez a cella aktív legyen (ne feledje, hogy Excelben aktiválni kell, mielőtt beírná a cellába), nem válik aktívvá (ha korábban nem volt így) és a számára bármilyen fontos megbízatást követően.

Ebből a cikkből megtudhatja, hogyan hozhat létre üzenetdobozt VBA Excel, amely különféle információkat tud megjeleníteni.

Funkció MsgBoxüzenetdobozt jelenít meg, és megvárja, amíg a felhasználó rákattint egy gombra, majd a felhasználó által kattintott gombon alapuló művelet végrehajtásra kerül.

Szintaxis

MsgBox(prompt[,buttons][,title][,helpfile,context])

Paraméter Leírás

  • A kérés kötelező paraméter. A párbeszédpanelen üzenetként megjelenítendő karakterlánc. Maximális hossz meghívók - körülbelül 1024 karakter. Ha az üzenet egynél több sort ölel fel, akkor a sorokat kocsivissza (Chr(13)) vagy soremelés (Chr(10)) karakterrel lehet elválasztani az egyes sorok között.
  • A gombok egy opcionális paraméter. Numerikus kifejezés, amely meghatározza a megjelenítendő gombok típusát, a használandó ikonstílust, az alapértelmezett gombazonosítót és az üzenetdoboz módozatait. Ha üresen hagyja, a gombok alapértelmezett értéke 0.
  • A cím nem kötelező paraméter. A karakterlánc-kifejezés megjelenik a párbeszédpanel címsorában. Ha a cím üresen marad, az alkalmazás neve a címsorba kerül.
  • A súgófájl egy opcionális paraméter. Karakterlánc-kifejezés, amely azonosítja azt a súgófájlt, amely a párbeszédpanel környezetérzékeny súgójaként szolgál.
  • A kontextus egy opcionális paraméter. Numerikus kifejezés, amely azonosítja a súgó szerzője által a megfelelő súgótémakörhöz rendelt súgókörnyezetszámot. Kontextus megadása esetén egy súgófájlt is meg kell adni.

A Buttons paraméter bármelyiket felveheti következő értékeket:

  • 0 vbOKOnly – Csak az OK gombot jeleníti meg.
  • 1 vbOKCancel – Megjeleníti az OK és a Mégse gombokat.
  • 2 vbAbortRetryIgnore – Megjeleníti a törlés, újrakészítés és figyelmen kívül hagyó gombokat.
  • 3 vbYesNoCancel – Megjeleníti az Igen, Nem és Mégse gombokat.
  • 4 vbYesNo - Megjeleníti az Igen és a Nem gombokat.
  • 5 vbRetryCancel – Megjeleníti az újrapróbálkozás és a törlés gombokat.
  • 16 vbCritical – Kritikus üzenet ikont jelenít meg.
  • 32 vbQuestion – Figyelmeztető ikont jelenít meg.
  • 48 vbExclamation – Megjeleníti a figyelmeztető üzenet ikonját.
  • 64 vbInformáció. Információs üzenet ikont jelenít meg.
  • 0 vbDefaultButton1 – az első alapértelmezett gomb.
  • 256 A vbDefaultButton2 a második alapértelmezett gomb.
  • 512 vbDefaultButton3 – Harmadik alapértelmezett gomb.
  • 768 vbDefaultButton4 – A negyedik alapértelmezett gomb.
  • 0 vbApplicationModal Alkalmazás modális - Az aktuális alkalmazás nem fog futni, amíg a felhasználó nem válaszol az üzenetre.
  • 4096 vbSystemModal Rendszer modális – Minden alkalmazás nem fog működni, amíg a felhasználó nem válaszol az üzenetre.

A fenti értékek logikailag négy csoportra oszlanak: az első csoport (0-tól 5-ig) határozza meg az üzenetmezőben megjelenő gombokat. A második csoport (16, 32, 48, 64) a megjelenítendő ikon stílusát írja le, a harmadik csoport (0, 256, 512, 768) azt, hogy melyik gomb legyen az alapértelmezett, a negyedik csoport pedig (0, 4096) ) határozza meg az üzenetdoboz modalitását.

Visszatérési értékek

Az MsgBox függvény a következő értékek egyikét tudja visszaadni, amelyek segítségével azonosítható a felhasználó által az üzenetmezőben megnyomott gomb.

  • 1 - megnyomja a vbOK - OK gombot.
  • 2 - vbCancel - megnyomja a Mégse gombot
  • 3 - vbAbort - Megszakítás gomb megnyomva
  • 4 - vbRetry - Újrapróbálkozás gomb megnyomva
  • 5 - vbIgnore - Ignore gomb megnyomva
  • 6 - vbYes - Igen gomb megnyomva
  • 7 - vbNo - Nincs kattintás

Sub MessageBox_Demo() "Egyszerű üzenet MsgBox("Hello") "Üzenet címmel és gombokkal igen, nem és válasz visszavonása" & a) Sub End

MsgBox lépésről lépésre

1. lépés - A fenti funkció végrehajtható a VBA ablak "Futtatás" gombjára kattintva, vagy arra a gombra kattintva, amelyet Ön hozzáadott az Excel munkalaphoz.

2. lépés – Megjelenik egy egyszerű szövegdoboz az "Üdvözöljük" üzenettel és egy "OK" gombbal

" röviden megismerkedtünk az msgbox párbeszédpanel üzenetével. De ez volt a legegyszerűbb tájékoztató üzenet. Most nézzük meg közelebbről az MsgBox funkciót és minden típusú párbeszédüzenetet.

Az MsgBox függvény szintaxisa

Az MsgBox függvény a következő szintaxissal rendelkezik:

MsgBox( üzenet [, üzenetkonstansok] [, cím] [, hlp súgófájl, súgókörnyezet] )

A kötelező paraméter az "Üzenet", a többi elhagyható.

MsgBox "Üzenet szövege

  • Üzenetállandók- lehetővé teszi a párbeszédek típusának meghatározását.
  • fejléc– beállítja a párbeszédablak címét.
  • Súgó fájlhlp egy karakterlánc-kifejezés, amely megadja a párbeszédpanel súgófájljának nevét.
  • Súgó kontextus egy numerikus kifejezés, amely a párbeszédpanel súgófájljának környezeti számát adja meg.

Megtekintés párbeszédpanel:

a következő paranccsal jött létre:
MsgBox "Kérdést tartalmazó szöveg", vbYesNo, "Üzenet címe"

Ehhez hasonló üzenet létrehozásához:

a parancs így fog kinézni:
MsgBox "Kérdést tartalmazó szöveg", vbYesNoCancel, "Üzenet neve"

Egy ilyen üzenet:

parancs hozta létre:
MsgBox "Kérdést tartalmazó szöveg", vbAbortRetryIgnore, "Üzenet neve"

azok. a parancsban szereplő mindhárom példa közül csak a második paraméter (vbYesNo, vbYesNoCancel, vbAbortRetryIgnore) módosul. Ezek azok az értékek (konstansok), amelyek meghatározzák az üzenet típusát. A paraméterek (vbYesNo, vbYesNoCancel) helyettesíthetők numerikus értékkel, például a vbYesNo párbeszédablakot a 4 beírásával hívhatjuk meg: MsgBox "Kérdést tartalmazó szöveg", 4, "Üzenet neve".

Alább teljes listaállandók és ezek megfelelő digitális értékei:

Állandó

Jelentése

Leírás

vbOKOnly

Üzenetet jelenít meg egy gombbal rendben

vbOKMégse

Üzenetet jelenít meg a gombokkal rendbenÉs Megszünteti

vbAbortRetryIgnore

Üzenetet jelenít meg a gombokkal elvetél, ismétlés, Kihagyás

vbYesNoCancel

Üzenetet jelenít meg a gombokkal Igen, Nem, Megszünteti.

Üzenetet jelenít meg a gombokkal IgenÉs Nem

vbRetryCancel

Üzenetet jelenít meg a gombokkal IsmétlésÉs Megszünteti

Az üzenetek kissé módosíthatók. kinézet, rendeljen hozzá egy alapértelmezett gombot, adjon hozzá egy "Súgó" gombot konstansok hozzáadásával.

Például: MsgBox "Kérdést tartalmazó szöveg", vbYesNoCancel+vbInformation + vbMsgBoxHelpButton+vbDefaultButton2, az „Üzenet neve” egy ilyen üzenetet hoz létre:

vbInformáció- felkiáltójelet ad az üzenethez
vbMsgBoxHelpButton- teszi hozzá a "Súgó" gombot
vbDefaultButton2- a fókuszt a második gombra állítja (" Nem")

Az alábbiakban egy táblázat található, amely felsorolja az ikonkonstansokat és a gombok fókuszállandóit:

Állandó

Jelentése

Leírás

vbCritical

Megjelenít egy ikont kritikus üzenet(piros ovális, kereszttel)

vbQuestion

Megjelenít egy ikont a következővel: kérdőjel

vbFelkiáltás

Megjelenít egy ikont a következővel: felkiáltójel(sárga háromszögben)

vbInformáció

Megjelenít egy ikont információs üzenet

vbDefaultButton1

Az alapértelmezett fókuszt az első gombra állítja

vbDefaultButton2

Az alapértelmezett fókuszt a második gombra állítja

vbDefaultButton3

Az alapértelmezett fókuszt a harmadik gombra állítja

vbDefaultButton4

Az alapértelmezett fókuszt a negyedik gombra állítja

vbMsgBoxHelpButton

Hozzáad egy gombot Referencia

vbMsgBoxRight

Igazítsa az üzenet szövegét a jobb oldalhoz

vbMsgBoxRtlReading

Az üzenet összes elemét tükrözi (lásd az alábbi pillanatképet)

Hogyan lehet megtudni, hogy az üzenet melyik gombjára kattintott a felhasználó?

A felhasználó választását a segítségével határozzuk meg. Bizonyos helyzetekben használhatja .

Például hívjunk meg egy üzenetet úgy, hogy duplán kattintunk az LMB-re a munkalap bármely cellájában. A felhasználó választásának megfelelően szöveget jelenítünk meg ebben a cellában.

Létrehozunk egy újat Excel munkafüzetés váltson módba Visual Basic(Alt+F11). A projekt ablakban válassza a " 1. lap» és kattintson rá kétszer LMB.

A megnyíló kódszerkesztő ablakban írja be a következő eljárást:

Privát al Worksheet_BeforeDoubleClick( ByVal Cél Mint tartomány, mégse Mint Boolean)

Ha MsgBox("Kérdést tartalmazó szöveg", vbYesNo, "Üzenet címe") = vbYes Akkor
Kiválasztás = "IGEN megnyomva"
Más
Kiválasztás = "Nyomva nem"
Vége Ha

IF feltételben összehasonlítjuk az MsgBox függvény által visszaadott eredményt a vbYes konstanssal, azaz. ha az üzenetben megnyomják a gombot Igen”, akkor az MsgBox függvény a vbYes (6) értéket adja vissza. Az állandók és digitális megfelelőik teljes listája alább található. Most próbáld 1. lap kattintson duplán bármelyik cellára.

Jegyzet: Üzenet hívásakor a program végrehajtása leáll, amíg a felhasználótól nem érkezik válasz.

A második lehetőség a párbeszédpanel meghívására .

Hozzon létre egy második eljárást a 2. munkalapon. Az eljárás kódja a következő:

Privát al Worksheet_BeforeDoubleClick( ByVal Cél Mint tartomány, mégse Boole-ként)
Homályos mes
mes = MsgBox("Kérdést tartalmazó szöveg", vbYesNoCancel + vbInformation + vbDefaultButton2, "Üzenet neve")

Válassza a Case lehetőséget mes
ügy vbYes: Selection = "IGEN megnyomva"
ügy vbNo: Selection = "NEM megnyomva"
ügy vbCancel: Selection = "Mégse lenyomva"
Vége kijelölés

Ebben az esetben az MsgBox hívás eredménye egy változóhoz van rendelve mes majd a Select Case-ben megkeres egy egyezést, és az egyezésnek megfelelően műveleteket hajt végre.

Ez minden. Az alábbiakban mellékelünk egy ebben a cikkben tárgyalt kész példát.

A függvény által visszaadott állandók és értékek listája MsgBox:

Állandó

Jelentése

Gomb

vbCancel

Megszünteti

elvetél

Ismétlés

vbIgnore

Kihagyás

A VBA-ban a bemenet és a kimenet (a felhasználói interakcióhoz) párbeszédpaneleken végezhető el. Az értékek bevitelére szolgáló párbeszédpanel a beépített funkcióval valósul meg InputBox. Az InputBox függvény által megvalósított beviteli mezőben egy változó értékének megadására szolgáló mező jelenik meg, amelyben a felhasználónak egy adott értéket kell megadnia. Ezután a felhasználónak rá kell kattintania az OK gombra.

Funkció InputBox() a következő szintaxissal rendelkezik:

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

Ahol argumentumok: A Prompt vagy az Message egy kötelező argumentum, amely egy tájékoztató üzenetet határoz meg a párbeszédpanelen. Az összes többi argumentum nem kötelező. A Title az ablak címét adja meg. Az 1. ábra egy modult mutat be, amely az InputBox funkciót használja.


Rizs. 1.

A 2. modul befejezése után megjelenik egy "Változóértékek bevitele" üzenetablak (2. ábra), amelyben meg kell adnia egy számot, és kattintson az OK gombra. Az InputBox funkcióval megvalósított párbeszédpanel (2. ábra) (1. ábra) a következőket jeleníti meg: Ablak címe - Változóértékek bevitele; Üzenet - Írjon be egy számot; Gombok (alapértelmezett) - OK és Mégse; Változóértékek bevitelére szolgáló mező.


Rizs. 2.

Az információk megjelenítéséhez a kezelő által megvalósított üzenetek párbeszédpaneljait használják. MsgBox vagy funkciót MsgBox(). Az MsgBox utasításként használható. Az MsgBox utasítás információkat jelenít meg egy párbeszédpanelen, és beállítja azt a módot, hogy megvárja, amíg a felhasználó megnyom egy gombot.

Az MsgBox utasítás szintaxisa a következő:
MsgBox Prompt, , , ,

Ahol az argumentumok a következők: Prompt vagy Message – egy kötelező argumentum, amely meghatározza az ablakban megjelenítendő tájékoztató üzenetet. Az összes többi argumentum nem kötelező. Gombok – Az üzenet párbeszédpanelen használható gombok. Különféle gombok (OK, Mégse stb.) használhatók az üzenetablakban. Ha nem adja meg, hogy mely gombok jelenjenek meg az üzenetmezőben, akkor alapértelmezés szerint az OK gomb jelenik meg. Ezenkívül az üzenet párbeszédpaneleiben különféle ikonok használhatók (vbQuestion - kérdőjel ikon, vbExclamation - felkiáltójel ikon stb.).

ábrán látható az a modul, amelyben az MsgBoxot operátorként használják. 3 (operátor MsgBox "3", vbOKCancel, "Kimeneti értékek").



Rizs. 3

Amikor a 4-es modult elindítjuk végrehajtásra, megjelenik egy "Kimeneti értékek" üzenetablak (4. ábra), amelyben az OK gombra kell kattintani. Az MsgBox operátor által megvalósított ablak (4. ábra) (3. ábra) a következőket jeleníti meg: Ablak címe - Értékek kimenete; Üzenet - 3; Gombok - OK és Mégse.


Rizs. 4

Például egy y = 5 x 2 + 7 x + 9 függvény kiszámításához használhatja az InputBox függvényt és az MsgBox operátort (5. ábra).



Rizs. 5

Az 5. modul végrehajtása után megjelenik egy beviteli mező


Rizs. 6

Egy szám (például 789) beírása és az OK gombra kattintás után megjelenik egy üzenetablak, amely az y = 5 x 2 + 7 x + 9 függvény eredményét mutatja.


Rizs. 7

Az MsgBox funkcióként használható. Az MsgBox() függvény szintaxisa a következő: MsgBox (Prompt, , , , ). Ebben az esetben a párbeszédpanelen több különböző gomb található. Amikor egy párbeszédpanelen megnyomnak egy gombot, az MsgBox() függvény egész értéket ad vissza, amely attól függ, hogy melyik gombot nyomták meg az üzenet párbeszédpanelen.