„Excel VBA MsgBox“ (pranešimų dėžutė) - viskas, ką reikia žinoti!

„Excel VBA“ galite naudoti „MsgBox“ funkciją, norėdami parodyti pranešimų laukelį (kaip parodyta žemiau):

„MsgBox“ yra ne kas kita, kaip dialogo langas, kurį galite naudoti norėdami informuoti savo vartotojus rodydami pasirinktinį pranešimą arba gauti keletą pagrindinių įvesties duomenų (pvz., Taip/Ne arba Gerai/Atšaukti).

Kol rodomas dialogo langas „MsgBox“, jūsų VBA kodas sustabdytas. Norėdami paleisti likusį VBA kodą, turite spustelėti bet kurį „MsgBox“ mygtuką.

Pastaba: šioje pamokoje žodžius pranešimų dėžutė ir „MsgBox“ naudosiu pakaitomis. Dirbdami su „Excel VBA“, visada turite naudoti „MsgBox“.

„VBA MsgBox“ anatomija „Excel“

Pranešimų dėžutę sudaro šios dalys:

  1. Pavadinimas: Tai paprastai naudojama norint parodyti, apie ką yra pranešimų langelis. Jei nieko nenurodote, rodomas programos pavadinimas - šiuo atveju tai yra „Microsoft Excel“.
  2. Greitas: Tai yra pranešimas, kurį norite rodyti. Šią erdvę galite naudoti norėdami parašyti porą eilučių ar net parodyti lenteles/duomenis.
  3. Mygtukas (-ai): Nors numatytasis mygtukas yra Gerai, galite jį pritaikyti taip, kad būtų rodomi tokie mygtukai kaip Taip/Ne, Taip/Ne/Atšaukti, Bandyti iš naujo/Ignoruoti ir kt.
  4. Uždaryti piktogramą: Galite uždaryti pranešimų laukelį spustelėdami uždarymo piktogramą.

VBA „MsgBox“ funkcijos sintaksė

Kaip jau minėjau, „MsgBox“ yra funkcija ir turi sintaksę, panašią į kitas VBA funkcijas.

„MsgBox“ (raginimas [, mygtukai] [, pavadinimas] [, pagalbos failas, kontekstas])

  • raginimas - Tai yra privalomas argumentas. Jame rodomas pranešimas, kurį matote „MsgBox“. Mūsų pavyzdyje tekstas „Tai yra„ MsgBox “pavyzdys“ yra „raginimas“. Raginime galite naudoti iki 1024 simbolių, taip pat galite rodyti kintamųjų reikšmes. Jei norite parodyti raginimą, kuriame yra kelios eilutės, galite tai padaryti (daugiau apie tai vėliau šiame vadove).
  • [mygtukai] - Tai nustato, kokie mygtukai ir piktogramos rodomi „MsgBox“. Pavyzdžiui, jei naudoju „vbOkOnly“, jame bus rodomas tik mygtukas „Gerai“, o jei naudosiu „vbOKCancel“, bus rodomi ir mygtukai Gerai, ir Atšaukti. Vėliau šioje pamokoje aptarsiu įvairių tipų mygtukus.
  • [pavadinimas] - Čia galite nurodyti, kokio užrašo norite pranešimo dialogo lange. Tai rodoma „MsgBox“ pavadinimo juostoje. Jei nieko nenurodysite, bus rodomas programos pavadinimas.
  • [pagalbos failas] - Galite nurodyti pagalbos failą, kurį galima pasiekti, kai vartotojas spustelės pagalbos mygtuką. Pagalbos mygtukas pasirodys tik tada, kai naudosite mygtuko kodą. Jei naudojate pagalbos failą, taip pat turite nurodyti kontekstinį argumentą.
  • [kontekstas] - Tai skaitinė išraiška, kuri yra pagalbos konteksto numeris, priskirtas atitinkamai pagalbos temai.

Jei dar nesate susipažinę su „Msgbox“ koncepcija, drąsiai nekreipkite dėmesio į [pagalbos failą] ir [kontekstą]. Aš retai mačiau, kaip jie naudojami.

Pastaba: visi argumentai skliausteliuose yra neprivalomi. Privalomas tik „greitas“ argumentas.

„Excel VBA MsgBox“ mygtukų konstantos (pavyzdžiai)

Šiame skyriuje aptarsiu įvairių tipų mygtukus, kuriuos galite naudoti su „VBA MsgBox“.

Prieš parodydamas jums VBA kodą ir kaip atrodo „MsgBox“, čia yra lentelė, kurioje išvardytos visos skirtingos mygtukų konstantos, kurias galite naudoti.

Mygtukas Pastovus apibūdinimas
vbOKTik Rodo tik OK mygtuką
vbOKCancel Rodo mygtukus Gerai ir Atšaukti
vbAbortRetryIgnore Rodo mygtukus Abort, Retry ir Ignore
vbTaip ne Rodo mygtukus Taip ir Ne
vbTaipAtšaukti Rodo mygtukus Taip, Ne ir Atšaukti
vbRetryCancel Rodo mygtukus „Bandyti iš naujo“ ir „Atšaukti“
vbMsgBoxHelpButton Rodo pagalbos mygtuką. Kad tai veiktų, turite naudoti „MsgBox“ funkcijos pagalbos ir konteksto argumentus
vbDefaultButton1 Pirmasis mygtukas yra numatytasis. Galite pakeisti numerį, kad pakeistumėte numatytąjį mygtuką. Pavyzdžiui, „vbDefaultButton2“ antrasis mygtukas yra numatytasis

Pastaba: Peržiūrėdami skirtingų mygtukų kūrimo pavyzdžius, galite pagalvoti, kokia prasmė turėti šiuos mygtukus, jei tai neturi jokios įtakos kodui.

Ji! Remdamiesi pasirinkimu, galite koduoti, ką norite, kad kodas darytų. Pavyzdžiui, jei pasirinksite Gerai, kodas turėtų būti tęsiamas, o jei spustelėsite Atšaukti, kodas turėtų sustoti. Tai galima padaryti naudojant kintamuosius ir priskiriant pranešimo dėžutės vertę kintamajam. Tai aptarsime vėlesniuose šios pamokos skyriuose.

Dabar pažvelkime į keletą pavyzdžių, kaip skirtingi mygtukai gali būti rodomi „MsgBox“ ir kaip jie atrodo.

„MsgBox“ mygtukai - „vbOKOnly“ (numatytasis)

Jei naudosite tik raginimą ir nenurodysite nė vieno argumento, gausite numatytąjį pranešimų laukelį, kaip parodyta žemiau:

Žemiau yra kodas, kuris suteiks šį pranešimų laukelį:

Sub DefaultMsgBox () MsgBox "Tai pavyzdinis langelis" End Sub

Atminkite, kad teksto eilutė turi būti dvigubose kabutėse.

Taip pat galite naudoti mygtuko konstantą „vbOKOnly“, tačiau net jei nieko nenurodote, jis laikomas numatytuoju.

„MsgBox“ mygtukai - gerai ir atšaukti

Jei norite rodyti tik Gerai ir Atšaukti mygtuką, turite naudoti konstantą vbOKCancel.

Sub MsgBoxOKCancel () MsgBox "Norite tęsti?", VbOKCancel End Sub

„MsgBox“ mygtukai - nutraukti, bandyti dar kartą ir ignoruoti

Galite naudoti konstantą „vbAbortRetryIgnore“, kad būtų rodomi mygtukai Abort, Retry ir Ignore.

Sub MsgBoxAbortRetryIgnore () MsgBox "Ką norite daryti?", VbAbortRetryIgnore End Sub

„MsgBox“ mygtukai - taip ir ne

Norėdami naudoti mygtukus „Taip“ ir „Ne“, galite naudoti konstantą „vbYesNo“.

Sub MsgBoxYesNo () MsgBox "Ar turėtume sustoti?", VbYesNo End Sub

„MsgBox“ mygtukai - taip, ne ir atšaukti

Galite naudoti konstantą „vbYesNoCancel“, kad būtų rodomi mygtukai Taip, Ne ir Atšaukti.

Sub MsgBoxYesNoCancel () MsgBox "Ar turėtume sustoti?", VbYesNoCancel End Sub

„MsgBox“ mygtukai - bandykite dar kartą ir atšaukite

Galite naudoti „vbRetryCancel“ konstantą, kad būtų rodomi mygtukai „Bandyti iš naujo“ ir „Atšaukti“.

Sub MsgBoxRetryCancel () MsgBox "Ką norite daryti toliau?", VbRetryCancel End Sub

„MsgBox“ mygtukai - pagalbos mygtukas

Norėdami parodyti pagalbos mygtuką, galite naudoti konstantą „vbMsgBoxHelpButton“. Galite naudoti su kitomis mygtukų konstantomis.

Sub MsgBoxRetryHelp () MsgBox "Ką norite daryti toliau?", VbRetryCancel + vbMsgBoxHelpButton End Sub

Atminkite, kad šiame kode mes sujungėme dvi skirtingas mygtukų konstantas (vbRetryCancel + vbMsgBoxHelpButton). Pirmoje dalyje rodomi mygtukai „Bandyti iš naujo“ ir „Atšaukti“, o antroje - pagalbos mygtukas.

„MsgBox“ mygtukai - numatytojo mygtuko nustatymas

Norėdami nustatyti pirmąjį mygtuką kaip numatytąjį, galite naudoti konstantą „vbDefaultButton1“. Tai reiškia, kad mygtukas jau yra pasirinktas ir jei paspausite „Enter“, jis tą mygtuką įvykdys.

Žemiau yra kodas, kuris antrąjį mygtuką (mygtuką „Ne“) nustatys kaip numatytąjį.

Sub MsgBoxOKCancel () MsgBox "Ką norite daryti toliau?", VbTaipAtšaukti + vbDefaultButton2 End Sub

Daugeliu atvejų kairysis mygtukas yra numatytasis. Galite pasirinkti kitus mygtukus naudodami vbDefaultButton2, vbDefaultButton3 ir vbDefaultButton4.

„Excel VBA MsgBox“ piktogramų konstantos (pavyzdžiai)

Be mygtukų, taip pat galite tinkinti piktogramas, rodomas dialogo lange „MsgBox“. Pavyzdžiui, galite turėti raudoną kritinę piktogramą arba mėlyną informacijos piktogramą.

Žemiau yra lentelė, kurioje išvardytas kodas, kuriame bus rodoma atitinkama piktograma.

Piktograma Pastovi apibūdinimas
vbKritinis Rodo kritinio pranešimo piktogramą
vbKlausimas Rodo klausimo piktogramą
vbSušukimas Rodo įspėjamojo pranešimo piktogramą
vbInformacija Rodo informacijos piktogramą

„MsgBox“ piktogramos - kritinės

Jei „MsgBox“ norite parodyti svarbią piktogramą, naudokite „vbCritical“ konstantą. Tai galite naudoti kartu su kitomis mygtukų konstantomis (tarp kodų įterpdami + ženklą).

Pavyzdžiui, žemiau yra kodas, kuriame bus rodomas numatytasis OK mygtukas su kritine piktograma.

Sub MsgBoxCriticalIcon () MsgBox "Tai pavyzdžių dėžutė", vbCritical End Sub

Jei norite rodyti svarbią piktogramą su mygtukais Taip ir Ne, naudokite šį kodą:

Sub MsgBoxCriticalIcon () MsgBox "Tai pavyzdžių dėžutė", vbTaipNe + vbCritical End Sub

„MsgBox“ piktogramos - klausimas

Jei „MsgBox“ norite parodyti svarbią piktogramą, naudokite „vbQuestion“ konstantą.

Sub MsgBoxQuestionIcon () MsgBox "Tai pavyzdžių dėžutė", vbYesNo + vbQuestion End Sub

„MsgBox“ piktogramos - šauktukas

Jei „MsgBox“ norite parodyti šauktuko piktogramą, naudokite vbExclamation konstantą.

Sub MsgBoxExclamationIcon () MsgBox "Tai pavyzdžių dėžutė", vbTaip ne + vbEksclamation End Sub

„MsgBox“ piktogramos - informacija

Jei norite „MsgBox“ parodyti informacijos piktogramą, naudokite „vbInformation“ konstantą.

Sub MsgBoxInformationIcon () MsgBox "Tai pavyzdžių dėžutė", vbYesNo + vbInformation End Sub

Pavadinimo ir raginimo pritaikymas „MsgBox“

Kai naudojate „MsgBox“, galite tinkinti pavadinimą ir raginimus.

Iki šiol pavyzdys, kurį matėme, pavadino „Microsoft Excel“. Jei nenurodote pavadinimo argumento, „MsgBox“ automatiškai naudoja programos pavadinimą (šiuo atveju tai buvo „Microsoft Excel“).

Galite tinkinti pavadinimą, nurodydami jį kodu, kaip parodyta žemiau:

Sub MsgBoxInformationIcon () MsgBox "Ar norite tęsti?", VbYesNo + vbQuestion, "1 veiksmas iš 3" Pabaiga

Panašiai taip pat galite tinkinti greitą pranešimą.

Taip pat galite pridėti eilutės pertraukų greitajame pranešime.

Žemiau esančiame kode pridėjau eilutės pertrauką naudodami „vbNewLine“.

Sub MsgBoxInformationIcon () MsgBox "Ar norite tęsti?" & vbNewLine & "Spustelėkite Taip, jei norite tęsti", vbYesNo + vbQuestion, 1 veiksmas iš 3 "Pabaiga

Taip pat galite naudoti karietos grąžinimo simbolį - Chr (13) - arba eilutės tiekimą - Chr (10), kad į raginimo pranešimą įterptumėte naują eilutę.

Atminkite, kad naują eilutę galite pridėti tik prie raginimo pranešimo, o ne pavadinimo.

„MsgBox“ vertės priskyrimas kintamajam

Iki šiol matėme pavyzdžių, kai sukūrėme pranešimų dėžutes ir pritaikėme mygtukus, piktogramas, pavadinimą ir raginimus.

Tačiau mygtuko paspaudimas nieko nepadarė.

Naudodami „Excel“ funkciją „MsgBox“, galite nuspręsti, ką daryti, kai vartotojas spustelės tam tikrą mygtuką. Ir tai įmanoma, nes kiekvienas mygtukas turi tam tikrą vertę.

Taigi, jei spusteliu mygtuką Taip, funkcija „MsgBox“ grąžina vertę (6 arba pastovią „vbYes“), kurią galiu naudoti savo kode. Panašiai, jei vartotojas pasirenka mygtuką „Ne“, jis grąžina kitą reikšmę ((7 arba konstanta vbNo)), kurią galiu naudoti kodu.

Žemiau yra lentelė, kurioje rodomos tikslios vertės ir MsgBox funkcijos grąžinta konstanta. Jums nereikia jų įsiminti, tiesiog žinokite apie tai ir galite naudoti lengviau naudojamas konstantas.

Mygtukas Spustelėtas Pastovus Vertė
Gerai vbGerai 1
Atšaukti vbAtšaukti 2
Nutraukti vbAbortas 3
Bandykite dar kartą vbRetry 4
Ignoruoti vb Ignoruoti 5
Taip vbTaip 6
Ne vbNe 7

Dabar pažiūrėkime, kaip galime valdyti VBA makrokomandą pagal tai, kokį mygtuką naudotojas spustelėja.

Toliau pateiktame kode, jei vartotojas spustelėja „Taip“, rodomas pranešimas „Jūs spustelėjote Taip“, o jei vartotojas spustelėjo „Ne“, rodomas pranešimas „Jūs spustelėjote Ne“.

Sub MsgBoxInformationIcon () Result = MsgBox ("Ar norite tęsti?", VbYesNo + vbQuestion) Jei rezultatas = vbTaip Tada MsgBox "Jūs spustelėjote Taip" Kita: MsgBox "Spustelėjote Ne" Baigti, jei pabaiga

Pirmiau pateiktame kode aš kintamam rezultatui priskyriau funkcijos „MsgBox“ vertę. Spustelėjus mygtuką Taip, kintamasis rezultatas gauna konstantą vbYes (arba skaičių 6), o kai spustelite Ne, rezultato kintamasis gauna konstantą vbNo (arba skaičių 7).

Tada aš naudoju „If Then Else“ konstrukciją, kad patikrintų, ar „Result“ kintamasis turi reikšmę „vbYes“. Jei taip, rodomas raginimas „Jūs spustelėjote Taip“, kitu atveju - „Spustelėjote Ne“.

Tą pačią sąvoką galite naudoti norėdami paleisti kodą, jei naudotojas spustelėja „Taip“, ir išeina iš antrinės dalies, kai spustelėja „Ne“.

Pastaba: Kai priskiriate „MsgBox“ išvestį kintamajam, skliausteliuose turite įdėti „MsgBox“ funkcijos argumentus. Pavyzdžiui, eilutėje Rezultatas = „MsgBox“ („Ar norite tęsti?“, VbYesNo + vbQuestion), matote, kad argumentai yra skliausteliuose.

Jei norite toliau gilintis į pranešimų dėžutės funkciją, čia yra oficialus dokumentas.

Jums taip pat gali patikti šios „Excel VBA“ pamokos:

  • „Excel VBA“ padalijimo funkcija.
  • „Excel VBA InStr“ funkcija.
  • Darbas su ląstelėmis ir diapazonais „Excel VBA“.
  • Darbas su darbalapiais VBA.
  • Darbas su darbo knygomis VBA.
  • „Loops“ naudojimas „Excel VBA“.
  • „Excel VBA“ duomenų tipų (kintamųjų ir konstantų) supratimas
  • Kaip sukurti ir naudoti asmeninę makrokomandų darbaknygę „Excel“.
  • Naudingi „Excel“ makrokomandų kodų pavyzdžiai.
  • „Excel VBA“ naudojimas kitam ciklui.
  • „Excel VBA Events“ - lengvas (ir išsamus) vadovas.
  • Kaip paleisti makrokomandą „Excel“-išsamus žingsnis po žingsnio vadovas.
  • Kaip sukurti ir naudoti „Excel“ priedą.

Padėsite svetainės plėtrą, dalintis puslapį su draugais

wave wave wave wave wave