Tartalomjegyzék
MSO Basic
- Szerző: Sallai András
- Copyright © 2011, Sallai András
- Szerkesztve: 2011, 2015, 2018
- Licenc: CC BY-SA 4.0
- Web: https://szit.hu
Bevezetés
Az alábbi leírás egy rövid bevezetést ad az Excel makrózáshoz. A leírás fejlesztés alatt van, ezért nagyon rövid, de kezdéshez jó támpont lehet.
Mentés
Mentéskor válasszuk a következőt:
- Makróbarát word-dokumentum
Fejlesztői eszközök
- FÁJL menü → Beállítások → Menüszalag testreszabása
A megjelenő ablakban jobboldalon „Menüszalag testreszabása”.
Van egy sor jelölőnégyzet. Keressük meg a „Fejlesztőeszközök” feliratú jelölőnégyzetet:
[ ] Fejlesztőeszközök
Korábbi Excelben:
Első lépésként be kell kapcsolni a fejlesztőelemek fület a menüszalagon.
"Office gomb" -> "Az Excel beállításai" gomb -> "Népszerű elemek" lap "Fejlesztőeszközök lap megjelenítése a szalgon" jelölőnégyzet
Ekkor megjelenik egy „Fejlesztőeszközök” feliratú fül, ahol már rögzíthetünk saját makrókat, írhatunk Basic kódokat.
Megjegyzés
'megjegyzés szövege
Eljráás
Sub Makró1()
' Utasítások
End Sub
Változók használata
A változókat nem szükséges deklarálni. Egyszerűen elkezdjük használni. A következő példában az „a” változóba egy 3-as értéket teszünk.
a = 3
A következő utasítás az aktív cella értékét helyezi az „a” változóba:
a = ActiveCell.Value
Hogy a kód teljesebb legyen, a példa kedvéért a „C3”-as cellát aktívvá tesszük:
Range("C3").Select a = ActiveCell.Value
Egy cellába egy érték elhelyezése:
[c5].Value = 25
A példában a „c5”-ös cellába helyezzük a 25-ös számot.
Evaluate("c5").Value = 25
Matematikai függvények
Abs(x) | abszolút érték |
Sin(x) | szinusz |
Cos(x) | koszinusz |
Tan(x) | tangens |
Sqr(x) | gyökvonás |
Int(x) | egész rész |
Véletlenszám generálása
Véletlenszám generálása 0-tól – 2-ig.
szam = Int(3 * Rnd())
Operátorok
^ | hatványozás |
Bevitel párbeszédablakból
a = InputBox ("vmi")
Szelekció
If a > 3 Then Range("C3").Select ActiveCell.Value = "Nagyobb" End If
Iteráció
For
For i = 1 to 10 'Utasítások Next i
A With kulcsszó
Worksheets("Sheet1").Activate With ActiveCell.Font .Bold = True .Italic = True End With
Sztringkezelés
Sztring összefűzése MsgBox (szam1 & " " & szam2)
Függvények
Gyökvonás
MsgBox (Sqr(9))
Szinusz
b = [SIN(45)] MsgBox b
Összeg
A c2:c5 cellatartomány összegzése:
b = [Sum(c2:c5)]
Átlag
b = [Average(c2:c5)]
VB függvények
LBound
Egy tömb első elemének az értéke
LBound(tömb_neve, [dimenzió])
Dim A(1 To 100, 0 To 3, -3 To 4) LBound(A, 1) 'Eredénye: 1 LBound(A, 2) 'Eredménye: 0 LBound(A, 3) 'Eredménye: -3
Dim Legkisebb Dim tomb1(1 To 10, 5 To 15, 10 To 20) ' Declare array variables. Dim tomb(10) Legkisebb = Lbound(tomb1, 1) ' Eredmény: 1. Legkisebb = Lbound(tomb1, 3) ' Eredmény: 10. Legkisebb = Lbound(tomb2) ' Eredmény: 0 vagy 1, az kezdő index beállításától függően
UBound
Egy tömb utolsó elemének az értéke
UBound(tömb_neve, [dimenzió])
Üzenetablak
MsgBox b
MsgBox("Üzenet ide")
Listák
A kettes számú lista beillesztése A11:A17 cellákba:
listArray = Application.GetCustomListContents(2) For i = LBound(listArray, 1) To UBound(listArray, 1) Worksheets("Munka1").Cells(i + 10, 1).Value = listArray(i) Next i
Példa1
Sub Makró3() szam1 = 35 szam2 = 22 eredmeny = szam1 * szam2 cella = "A3" Range(cella).Select ActiveCell.Value = eredmeny End Sub
Példa2
Sub ÁtlagMakró() ' ' ÁtlagMakró Makró ' ' Billentyűparancs: Ctrl+r ' [a1].Value = 35 [a2].Value = 70 [a3].Value = 25 [a4].Value = 82 [a5].Value = 27 [a7].Value = "Átlag:" atlag = [average(A1:A5)] [b7].Value = atlag End Sub
Űrlap
Private Sub CommandButton1_Click() a = TextBox1.Text 'MsgBox (a * 2) d = a * 2 TextBox1.Text = d End Sub
Űrlap elérése makróból
ThisDocument.TextBox1.Text = "egy"
vagy
ActiveDocument.TextBox1.Text = "kettő"
A ThisDocument objektum nem használható a Normal.dotm-ból, csak az aktuális dokumentumba mentett makrókból.
Ablakok létrehozása
Készíthetünk saját ablakokat is, amelyeket bármely makróból meghívhatunk. A saját ablakra UserForm néven hivatkozhatunk. Két módon készíthetünk UserFormot:
- Eszköztár → második ikon
- Insert menü → UserForm
A UserForm mellett megnyílik egy eszköztár, amelyről komponensek pakolhatók fel. Az eszköztár ki és bekapcsolható a főeszköztár jobb szélső ikonjával.
A makróból meghívhatjuk ezeket az ablakokat a következő módon.
UserForm.Show