Pénzügyi feladatok VBA támogatása Barna Róbert KE GTK Informatika Tanszék Pénzügyi feladatok VBA támogatása 10. előadás
Kapcsolatok a felhasználóval A VBA széles körű lehetőségeket nyújt párbeszédes (interaktív) programok írására. a felhasználónak üzeneteket küldjünk, választ is kérjünk eldöntendő kérdéseinkre, beolvassunk a billentyűzetről a rutin végrehajtásához szükséges adatokat. Pénzügyi feladatok VBA támogatása – 10. előadás 3 /24
Kapcsolatok a felhasználóval Üzenetküldés és válaszkérés A felhasználót az aktív munkalapon az MsgBox utasítással „szólíthatjuk” meg. Eljárás: ha csak üzenetet küldünk, Függvény: ha választ is várunk. Az utasítás hatására egy üzenetablak jelenik meg a képernyő közepén, pozicionálni sajnos nem lehet. Pénzügyi feladatok VBA támogatása – 10. előadás 4 /24
Kapcsolatok a felhasználóval Üzenetküldés és válaszkérés Üzenetküldés: MsgBox üzenet$ [‚ ‚ címsor$] Üzenet és válaszkérés: válasz = MsgBox (üzenet$ _ [,[gombkonstans][‚[cimsor$][,s_áll$, s_az]]) Pénzügyi feladatok VBA támogatása – 10. előadás 5 /24
Kapcsolatok a felhasználóval Üzenetküldés és válaszkérés Az utasítás neve: MsgBox Paramétereinek sorrendje, száma és típusa: Az első paraméter kötelező, ez a megjelenítendő üzenet. A $ jel a formális név (üzenet$) végén azt jelenti, hogy a konkrét üzenetet szövegként, azaz idézőjelek között kell írni. Itt használható string vagy szöveg altípusú (szöveget tartalmazó) variant típusú változó is. Pénzügyi feladatok VBA támogatása – 10. előadás 6 /24
Kapcsolatok a felhasználóval Üzenetküldés és válaszkérés A harmadik paraméter, az üzenetablak címsorában (a kék színű fejlécsorban) megjelenítendő felirat. A címsor$ szöveg vagy változó csak egy sort tartalmazhat; ha hiányzik, a „Microsoft Excel” felirat jelenik meg. Az előzőek itt is érvényesek. A szögletes zárójelek azt jelzik, hogy a második és a harmadik paraméter elhagyható, külön-külön és együtt is. Pénzügyi feladatok VBA támogatása – 10. előadás 7 /24
Kapcsolatok a felhasználóval Üzenetküldés és válaszkérés Határoló vesszők a szögletes zárójeleken belül: ha egynél több paramétert adunk meg az első vesszőt ki kell tenni, a másodikat viszont csak akkor, ha a harmadik és/vagy a negyedik és ötödik paraméter is szerepel. Például üzenetküldés estén, amikor nincs gombkonstans csak címszöveg, az üzenet után két vessző írandó. Pénzügyi feladatok VBA támogatása – 10. előadás 8 /24
Kapcsolatok a felhasználóval Üzenetküldés és válaszkérés Az üzenet szövege az üzenetablakban középre igazítva jelenik meg. Ha több sorba szeretnénk tördelni, használjuk a vbcrlf konstanst, amelyet be kell fűzni a szövegsorok közé. Pénzügyi feladatok VBA támogatása – 10. előadás 9 /24
Kapcsolatok a felhasználóval Üzenetküldés és válaszkérés Ha különböző hosszúságú sorokat szeretnénk egymás alá igazítani, a rövidebb sorok elején beszúrandó szóközök számát, az abs(len(szövegl) — len(szöveg2)) / 2 képlettel lehet kiszámítani. Itt a szöveg1 és a szöveg2 változóban van a kiírandó szöveg, a szövegek hosszát a len, különbségük abszolútértékét az abs függvény adja. Pénzügyi feladatok VBA támogatása – 10. előadás 10 /24
Kapcsolatok a felhasználóval Üzenetküldés és válaszkérés A gombkonstans paraméter meghatározza, hogy milyen parancsgombok tesznek láthatók az üzenetablakban. Alapértelmezés az OK gomb, ha nem szerepel gombkonstans, csak ez látszik. Lehetőségek a következő táblázatban. Pénzügyi feladatok VBA támogatása – 10. előadás 11 /24
Kapcsolatok a felhasználóval Gombkonstans neve Kódja Jelentése 1. csoport VbOKOnly Csak az OK (Rendben) gomb látszik VbOKCancel 1 Az OK* és a CANCEL** (Mégsem) gomb látszik VbAbortRetryIgnore 2 Az ABORT (megszakít), a RETRY (Újra) és az IGNORE (Kihagy) gomb latszik VbYesNoCancel 3 A YES (Igen), a NO (Nem) és a CANCEL gomb látszik VbYesNo 4 A YES és a NO gomb látszik VbRetryCancel 5 A RETRY és a CANCEL gomb látszik 2. csoport VbCritical 16 A súlyos hiba ikon (Stop tábla) is látszik VbQuestion 32 A kérdőjel ikon is látszik VbExclamination 48 A felkiáltójel ikon is látszik VbInformation 64 Az információ-jel ikon (i betű) is látszik 3. csoport VbDefaultButton1 Alapértelmezett az 1. gomb* VbDefaultButton2 256 Alapértelmezett a 2. gomb VbDefaultButton3 512 Alapértelmezett a 3. gomb VbDefaultButton4 768 Alapértelmezett a 4. gomb 4. csoport VbApplicationModal Alkalmazáshoz kötött: a makró futása felfüggesztődik, . - amig a felhasznalo nem valaszol VbSystemModal 4096 Rendszerhez kötött: az alkalmazás felfüggesztődik, amig a felhasznalo nem valaszol Pénzügyi feladatok VBA támogatása – 10. előadás 12 /24
Kapcsolatok a felhasználóval Üzenetküldés és válaszkérés Második paraméterként írható a táblázat 3. oszlopában levő számkód is, célszerűbb a 2. oszlopban lévő konstansnevet használni. Mindegyik csoportból egy elem választható, nevüket + jellel kell összekapcsolni. A számkódokból is látható, hogy az egy csoportba tartozó elemek kizárják egymást, együttesen nem fordulhatnak elő. Pénzügyi feladatok VBA támogatása – 10. előadás 13 /24
Kapcsolatok a felhasználóval Üzenetküldés és válaszkérés * Az Enter billentyű leütése azonos hatású az OK billentyűre, illetve az alapértelmezett gombra kattintással ** Az Esc billentyű leütése azonos hatású a MÉGSEM gombra kattintással. Pénzügyi feladatok VBA támogatása – 10. előadás 14 /24
Kapcsolatok a felhasználóval Üzenetküldés és válaszkérés A 4. és 5. paraméter (elhagyható) a súgóállomány neve és a vonatkozó téma állománybeli azonosító száma. Ezeket együtt kell megadni vagy elhagyni. Mivel a témazonosító számok általában nem ismertek, ezt a két paramétert átalában nem használjuk. Ha viszont szerepelnek, az üzenetmezőben automatikusan megjelenik a SÚGÓ gomb is, amelyre kattintva megnyílik a megfelelő súgó-állomány. Ha ezt lezárjuk, visszaáll a válaszra várakozó állapot. Pénzügyi feladatok VBA támogatása – 10. előadás 15 /24
Kapcsolatok a felhasználóval Üzenetküldés és válaszkérés Függvényhívás esetén a válasz változó értéke alapján dönthetjük el, hogy a felhasználó melyik gombot nyomta le. A lehetséges válaszkódokat a kvetkező táblázat tartalmazza. Az elvárt válaszkódnak természetesen összhangban kell lennie a gombkonstanssal; csak OK gomb megjelenítése után például ne várjunk „Yes” választ Pénzügyi feladatok VBA támogatása – 10. előadás 16 /24
Kapcsolatok a felhasználóval Üzenetküldés és válaszkérés VBOK VBCANCEL VBABORT VBRETRY VBIGNORE VBYES VBNO 1 2 3 4 5 6 7 Pénzügyi feladatok VBA támogatása – 10. előadás 17 /24
Kapcsolatok a felhasználóval Adatok bekérése Adatokat az InputBox függvénnyel lehet bekérni az aktuális munkalapról. A függvény aktiválásakor egy üzenetablak jelenik meg a képernyőn; ezután a rutin várakozó állapotba kerül, amíg a Felhasználó egy válaszgombra nem kattint. Az üzenetablakban egy beviteli mező valamint egy OK és egy CANCEL gomb is látható. Pénzügyi feladatok VBA támogatása – 10. előadás 18 /24
Kapcsolatok a felhasználóval Adatok bekérése A függvényhívás szintaxisa: beválasz = InputBox[$](üzenet$ [, _ [cimsor$][,[kezdőérték][,[x][,[y]]]]) Pénzügyi feladatok VBA támogatása – 10. előadás 19 /24
Kapcsolatok a felhasználóval Adatok bekérése Az első két paraméter jelentése ugyanaz, mint az MsgBox esetében az 1., illetve a 3. paraméteré (megjelenítendő üzenet, megjelenítendő felirat). A kiírt üzenetszöveg legtöbbször a megadandó adatra vonatkozó kérdés. A harmadik paraméter a beviteli mezőben megjelenő kezdőérték. Pénzügyi feladatok VBA támogatása – 10. előadás 20 /24
Kapcsolatok a felhasználóval Adatok bekérése A negyedik és az ötödik paraméterrel az üzenetablak bal felső sarkának pozíciója adható meg. A négy utolsó paraméter elhagyható, de bármelyik megadása esetén az előtte álló vesszőket ki kell tenni. Pénzügyi feladatok VBA támogatása – 10. előadás 21 /24
Kapcsolatok a felhasználóval Adatok bekérése A beválasz változó csak Variant vagy String típusú lehet és elfogadó válasz (OK gomb vagy Enter billentyű) hatására felveszi a beviteli mező tartalmát. A beolvasott adat típusa a függvény típusától függ: az alapfüggvény szöveg altípusú Variant adatot, a $-os változat String típusú karakterláncot ad vissza. Pénzügyi feladatok VBA támogatása – 10. előadás 22 /24
Kapcsolatok a felhasználóval Adatok bekérése Ha csak numerikus karaktereket adtak meg, a karakterlánc a Val(beválasz) függvénnyel természetesen számmá alakítható. Visszautasító válasz (CANCEL gomb vagy ESC billentyű) hatására beválasz értéke üres karakterlánc (””) lesz. Pénzügyi feladatok VBA támogatása – 10. előadás 23 /24
Pénzügyi feladatok VBA támogatása – 10. előadás Köszönöm a figyelmet! Folyt köv. Pénzügyi feladatok VBA támogatása – 10. előadás 24 /24