Tartalomjegyzék

< Basic

MSO Basic

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:

Fejlesztői eszközök

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:

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

Irodalom