Bevezetés az Office programozásába Microsoft tanártovábbképzés
A makrónyelv szerepe Ma: összetett alkalmazások, sok-sok lehetőséggel. (Word, Excel stb.) Gyakran ismétlődő műveletsorok automatizálása (pl. formázás) Hiányzó lehetőségek megvalósítása (pl. szja számítás) Megoldás: az alkalmazások programozhatósága (interpreter)
Az Office makrónyelve Az Office programcsomag makrónyelve a Visual Basic for Applications (VBA). A VBA forráskód szinten a VB szűkítése, program specifikus kiegészítésekkel. A futtató környezet gyakorlatilag minden gépen (Office) rendelkezésre áll. Nemcsak az Office segédlete, didaktikai eszköz is lehet.
A VBA az oktatásban Legálisan rendelkezésre áll (Sulinet) Az adatbevitelt és kivitelt megoldja az alkalmazás; a programozásra lehet koncentrálni. A programozási tételek egyszerű megvalósítása (pl. Excelben). Közvetlenül látszik a hasznossága. Rövid idő alatt eredményes lehet.
Makró készítése rögzítéssel Példa: Szövegrész formázása Wordben A rögzítés indítása: Eszközök\Makró\Új makró rögzítése Végrehajtjuk a lejátszandó műveletsort Később a megadott billentyűkombinációval vagy az Eszközök\Makró\Makrók paranccsal lefuttathatjuk. Módosítás: a Makrók menüpont Szerkesztés parancsával.
Makróvírus demo Excelben Önálló objektumok saját tulaj-donságokkal és metódusokkal A ThisWorkbook objektum Open eseményéhez rendelhetjük a kódot: Private Sub Workbook_Open() MsgBox ("Üdvözlöm Önt”) End Sub
Új függvény az Excelben A függvényeket új modullapra kell beszúrni Beszúrás\Modul A modul a VB standard moduljának felel meg, a szokásos módon használható: Function szja(ébér) If ébér <= 400000 Then szja = ébér * 0.2 End If ……
Az Excel néhány objektuma A munkalapok gyűjteménye: Worksheets Új munkalap hozzáadása: Worksheets.Add Aktiválása:Worksheets(„Munka1”).Activate Az aktív munkalap: ActiveSheet A cellák gyűjteménye: Cells Példa: a Munka1 munkalap D5-ös cellája: Worksheets(„Munka1”).Cells(5, „D”)=3 y=Activesheet.Cells(2,”A”) A tartomány: Range z=ActiveSheet.Range(„A2:B3”).Cells(2,”B”)
Példa: Összegezés tétele Function össz(r As Range) Dim c As Object Dim s As Long For Each c In r s = s + c.Value Next c össz = s End Function Paraméter: a kijelölt tartomány c = cella lesz s = az összeg ciklus gyűjteményként (szokásos tétel) érték visszaadása
Űrlap beillesztése Űrlapmodult a Beszúrás\Userform menüponttal illesztünk be. Megformázása, programozása azonos a VB-ben megismertekkel. Összekapcsolása egy munkalappal: Private Sub cmdOK_Click() Static i As Integer i = i + 1 Worksheets(3).Cells(i, "A") = txtNév.Text End Sub
A Word néhány objektuma A dokumentumok gyűjteménye: Documents Új dokumentum: Documents.Add Aktiválása: Documents(„Minta.doc”).Activate Aktívdokumentum: ActiveDocument További objektumok: Characters (karakterek), Words (szavak), Sentences (mondatok) pl. ActiveDocument.Sentences(3).Characters(5) = "X” A kijelölt tartomány: Selection
Példa betűkezelésre Wordben Példa: az e betűk száma az aktív dokumentum kijelölt részében Sub ebetuk() Dim i As Long Dim char As Object i = 0 For Each char In Selection.Characters If char = "e" Then i = i + 1 Next MsgBox (i) End Sub