Visual Basic for Application (VBA) Alapszint
Excel bevezető feladatok Nyiss meg egy új, üres munkafüzetet! Hozd létre benne a szorzótáblát! Képletet csak a B2 cellába írj, majd azt másold jobbra illetve lefelé!
Excel bevezető feladatok A http://vacip.web.elte.hu/excel honlapon a feladatok mappából töltsétek le a VBA.xls-t, és oldjátok meg a benne található feladatokat!
Makró rögzítés Makró rögzítő használatával készíts makrót, ami: A munkalap elejére beszúr két sort, ahova fejlécként személyes adatok kerülnek (név, telefon, cégnév, osztály stb., csak kreatívan! ) Az aktuális cella hátterét világoskékre, betűit pirosra színezi, a tőle jobbra található cellába *-ot ír, és az eredeti alattiba áll!
Makró rögzítés Makró rögzítő használatával készíts makrót, ami: A VBA.xls szűrő munkalapjáról egy új munkalapra (előre hozd létre) kimásolja egymás alá a részleg vezetők nevét, és a hozzájuk tartozó egyenleget! A makró csak egy sort csináljon meg, aztán álljon a következő sor elejére!
Makró rögzítés Készítsd el az itt látható elrendezést! Készíts makrót, ami a középső oszlopba „összefésüli” a két számsort, azaz egyet innen, alá egyet onnan vesz! Csak egy sort csináljon meg a makród, aztán álljon a következő sorra!
Immediate ablak Nyisd meg a VB Editort (excelben alt+F11) A Nézet (View) menü Próbaablak (Immediate) parancsát válaszd ki! Az ide írt egysoros parancsok azonnal végrehajtódnak az Excelben; így ez az ablak kiválóan alkalmas egyszerű VBA parancsok kipróbálására. Próbáld ki a következő parancsokat!
Immediate ablak - Workbooks Workbooks.add ?workbooks.count Workbooks.close Kurzorral lépj vissza az első parancsra, és az Enter többszöri megnyomásával hajtsd végre 4-szer! Válaszd ki az egyik munkafüzetet, majd: activeworkbook.close ?Activeworkbook.name
Immediate ablak - Workbooks Workbooks(„Munkafüzet3”).close Workbooks(„Munkafüzet4”).activate Workbooks(2).activate ?activeworkbook.saved Megadja, hogy el van-e mentve. Mivel nem volt benne változás, ezért mentettnek tekinti. A workbooknak ezt a tulajdonságát állíthatjuk is: Activeworkbook.saved=false Most próbáld ismét lekérdezni a „mentettségi” állapotát, majd zárd be kézzel az adott munkalapot!
Immediate ablak - Worksheets Eddig a workbooks gyűjteménnyel és objektumaival foglalkoztunk, nézzük most a worksheets gyűjteményt! Worksheets.add Ezzel az aktív munkafüzethez adtunk hozzá egy újabb munkalapot. Workbooks(1).worksheets.add A legkorábban megnyitott munkafüzethez adunk hozzá egy új munkalapot Próbálj meg egy meghatározott munkafüzethez új lapot adni! Workbooks(”Book1”).worksheets.add
Immediate ablak - Worksheets Worksheets(1).name=”elso” Lehet halmozni az élvezeteket: ?worksheets.add.name Ez a parancs hozzáad egy munkalapot az aktív munkafüzethez, majd kiírja a nevét. Worksheets(”elso”).copy before:= workbooks(”munkafüzet2”).worksheets(2) ?sheets.count
Immediate ablak - Egyebek ?Activewindow.caption Activewindow.caption=”Haha” Most próbáld meg ugyanezt a parancsot használni az ablk feliratának átállítására! Application.quit
Immediate ablak - Cells Cells.select A cellák gyűjtemény összes elemét kiválasztja, tehát kijelöli az összes cellát. Cells(x).select X egy tetszőleges szám; a cells gyűjtemény annyiadik elemét választja ki a parancs. Ennél kicsit kezelhetőbb forma: Cells(x,y).select Érték is adható: Cells(x,y).value=”Helló” ?Cells(x,y).value
Immediate ablak - Range Range(”A1”).select Range(”b1:d12”).select Tartományt jelöl ki Range(”A5”).activate Mi a különbség a .Select és a .Activate között? Kísérletezz! Hogyan lehet vajon a többszörös kijelölést megoldani? Range(”A3”).interior.colorindex=3 Egy cella minden tulajdonsága állítható Néha van értelme halmozni: Range(Cells(x,y),Cells(i,j)).Select
Immediate ablak - Offset Activecell.Offset(s,o).Activate Selection.offset(s,o).select Mi a különbség? Activecell.offset(1,0).activate Az aktív cella alattit választja ki. Hogyan lehet felfelé léptetni? És jobbra hármat? Mikor adnak hibát a parancsok? Activecell.offset(0,-1).value=”Helló” Nem csak az aktív cellához lehet viszonyítani Range(”B2”).offset(1,2).select