< Basic

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

Irodalom

http://support.microsoft.com/kb/291073

http://www.techotopia.com/index.php/Visual_Basic_Essentials

http://www.fontstuff.com/vba/

http://msdn.microsoft.com/en-us/library/office/ee861527(v=office.15).aspx