tanszek:oktatas:muszaki_informatika:vba_tutorial
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
tanszek:oktatas:muszaki_informatika:vba_tutorial [2024/04/10 11:26] – knehez | tanszek:oktatas:muszaki_informatika:vba_tutorial [2025/04/09 11:09] (current) – [Alapvető Típusok] knehez | ||
---|---|---|---|
Line 2: | Line 2: | ||
Az Excel VBA (Visual Basic for Applications) egy eseményvezérelt programozási nyelv, amely lehetővé teszi az Excel alkalmazások automatizálását és testreszabását. Ebben a részben az Excel VBA alapvető nyelvi elemeit mutatjuk be, beleértve a változók deklarálását, | Az Excel VBA (Visual Basic for Applications) egy eseményvezérelt programozási nyelv, amely lehetővé teszi az Excel alkalmazások automatizálását és testreszabását. Ebben a részben az Excel VBA alapvető nyelvi elemeit mutatjuk be, beleértve a változók deklarálását, | ||
+ | |||
+ | ==== Makrók engedélyezése ===== | ||
+ | |||
+ | A Fájl/ | ||
+ | |||
+ | {{: | ||
+ | |||
+ | Fejlesztőeszközök (Developer) bekapcsolása: | ||
+ | |||
+ | Fájl → Beállítások → Menüszalag testreszabása → Pipáljuk be a **Fejlesztőeszközök**-et. | ||
+ | |||
+ | {{: | ||
+ | |||
+ | Válasszuk ki a " | ||
+ | |||
+ | {{: | ||
+ | |||
+ | Definiáljunk egy teszt függvényt ami visszaad egy konstans értéket. | ||
+ | |||
+ | {{: | ||
+ | |||
+ | <sxh vb> | ||
+ | Function teszt() | ||
+ | teszt = 1 | ||
+ | End Function | ||
+ | </ | ||
+ | |||
+ | használata: | ||
==== Változók Deklarálása ==== | ==== Változók Deklarálása ==== | ||
Line 23: | Line 51: | ||
* **String**: Szöveges típus | * **String**: Szöveges típus | ||
* **Boolean**: | * **Boolean**: | ||
+ | * **Byte**: 0-255-ig egész szám | ||
+ | ==== Kör területének számítása ==== | ||
+ | |||
+ | <sxh> | ||
+ | Sub Test() | ||
+ | Dim r As Double | ||
+ | Dim area As Double | ||
+ | |||
+ | r = InputBox(" | ||
+ | |||
+ | area = r * r * Application.WorksheetFunction.Pi | ||
+ | |||
+ | | ||
+ | End Sub | ||
+ | </ | ||
==== Vezérlési Elemek ==== | ==== Vezérlési Elemek ==== | ||
Line 54: | Line 97: | ||
Loop | Loop | ||
</ | </ | ||
+ | |||
+ | ---- | ||
==== Sztringek kezelése ==== | ==== Sztringek kezelése ==== | ||
Line 132: | Line 177: | ||
</ | </ | ||
+ | ---- | ||
- | ==== Makrók engedélyezése ===== | + | ==== Vektorok, tömbök kezelése |
- | A Fájl/Beállítások/ | + | < |
+ | Dim szamok(0 To 4) As Integer | ||
+ | </sxh> | ||
- | {{:tanszek: | + | Ez egy 5 elemű tömb (indexei: 0, 1, 2, 3, 4), amely egész számokat tárol. |
+ | <sxh> | ||
+ | Sub FixMeretuTomb() | ||
+ | Dim szamok(0 To 2) As Integer | ||
+ | szamok(0) = 10 | ||
+ | szamok(1) = 20 | ||
+ | szamok(2) = 30 | ||
- | Válasszuk ki a " | + | MsgBox szamok(1) |
+ | End Sub | ||
+ | </ | ||
- | {{:tanszek: | + | Változó méretű tömb: |
- | Definiáljunk egy teszt függvényt ami visszaad egy konstans értéket. | + | < |
+ | Sub DinamikusTomb() | ||
+ | Dim tomb() As String | ||
+ | ReDim tomb(1 To 3) | ||
- | {{: | + | tomb(1) = " |
+ | tomb(2) = " | ||
+ | tomb(3) = " | ||
- | <sxh vb> | + | MsgBox tomb(2) ' |
- | Function teszt() | + | End Sub |
- | teszt = 1 | + | |
- | End Function | + | |
</ | </ | ||
- | használata: írjuk be egy cellába **=teszt()** | + | Tömb különböző típusú elemekkel: |
+ | <sxh> | ||
+ | Sub FixMeretuTomb() | ||
+ | Dim arr(5) | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | End Sub | ||
+ | </ | ||
+ | |||
+ | Tömb bejárása ciklussal: | ||
+ | |||
+ | <sxh> | ||
+ | Sub TombBejarasa() | ||
+ | Dim i As Integer | ||
+ | Dim szamok(1 To 5) As Integer | ||
+ | |||
+ | For i = 1 To 5 | ||
+ | szamok(i) = i * 10 | ||
+ | Next i | ||
+ | |||
+ | For i = 1 To 5 | ||
+ | Debug.Print szamok(i) | ||
+ | Next i | ||
+ | End Sub | ||
+ | </ | ||
+ | |||
+ | // | ||
+ | |||
+ | A tömb határainak lekérdezése: | ||
+ | |||
+ | <sxh> | ||
+ | Dim tomb(3 To 7) As Integer | ||
+ | MsgBox LBound(tomb) | ||
+ | MsgBox UBound(tomb) | ||
+ | </ | ||
+ | |||
+ | Ez alapján a TombBejarasa() szubrutint dinamikusabbá tehetjük: | ||
+ | |||
+ | <sxh> | ||
+ | Sub TombBejarasa() | ||
+ | Dim i As Integer | ||
+ | Dim szamok(1 To 5) As Integer | ||
+ | |||
+ | For i = LBound(szamok) To UBound(szamok) | ||
+ | szamok(i) = i * 10 | ||
+ | Next i | ||
+ | |||
+ | For i = LBound(szamok) To UBound(szamok) | ||
+ | Debug.Print szamok(i) | ||
+ | Next i | ||
+ | End Sub | ||
+ | </ | ||
---- | ---- | ||
+ | ==== Gyakorló feladatok ==== | ||
Adjunk össze két számot. | Adjunk össze két számot. | ||
Line 214: | Line 336: | ||
| | ||
For Each cella In tartomany | For Each cella In tartomany | ||
- | If Not IsEmpty(cella.Value) Then | + | If IsNumeric(cella.Value) And Not IsEmpty(cella.Value) Then |
osszeg = osszeg + cella.Value | osszeg = osszeg + cella.Value | ||
db = db + 1 | db = db + 1 |
tanszek/oktatas/muszaki_informatika/vba_tutorial.1712748363.txt.gz · Last modified: 2024/04/10 11:26 by knehez