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/09 20:14] – [Sztringek kezelése] 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 8: | Line 36: | ||
| * **Példa**: Egyszerű változó deklaráció | * **Példa**: Egyszerű változó deklaráció | ||
| - | <code> | + | <sxh> |
| Dim szam As Integer | Dim szam As Integer | ||
| Dim szoveg As String | Dim szoveg As String | ||
| - | </code> | + | </sxh> |
| ==== Alapvető Típusok ==== | ==== Alapvető Típusok ==== | ||
| 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 29: | Line 72: | ||
| * **If...Then...Else** | * **If...Then...Else** | ||
| - | <code> | + | <sxh> |
| If szam > 10 Then | If szam > 10 Then | ||
| MsgBox "A szám nagyobb, mint 10." | MsgBox "A szám nagyobb, mint 10." | ||
| Line 35: | Line 78: | ||
| MsgBox "A szám 10 vagy annál kisebb." | MsgBox "A szám 10 vagy annál kisebb." | ||
| End If | End If | ||
| - | </code> | + | </sxh> |
| * **For Next Ciklus** | * **For Next Ciklus** | ||
| - | <code> | + | <sxh> |
| For i = 1 To 5 | For i = 1 To 5 | ||
| MsgBox " | MsgBox " | ||
| Next i | Next i | ||
| - | </code> | + | </sxh> |
| Itt fontos megjegyezni hogy a szövegeket //&// jellel adjuk össze, nem a plusz operátorral! | Itt fontos megjegyezni hogy a szövegeket //&// jellel adjuk össze, nem a plusz operátorral! | ||
| * **Do While Loop** | * **Do While Loop** | ||
| - | <code> | + | <sxh> |
| i = 1 | i = 1 | ||
| Do While i <= 5 | Do While i <= 5 | ||
| Line 53: | Line 96: | ||
| i = i + 1 | i = i + 1 | ||
| Loop | Loop | ||
| - | </code> | + | </sxh> |
| + | |||
| + | ---- | ||
| ==== Sztringek kezelése ==== | ==== Sztringek kezelése ==== | ||
| Line 128: | Line 173: | ||
| | | ||
| // 0, ha a stringek egyenlőek | // 0, ha a stringek egyenlőek | ||
| - | result = StrComp(" | + | result = StrComp(" |
| result = StrComp(" | result = StrComp(" | ||
| </ | </ | ||
| - | ==== Összefoglalás ==== | ||
| - | Ez a fejezet bevezetést nyújtott az Excel VBA alapjaihoz, beleértve a változók deklarálását, | + | ---- |
| - | ==== 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 216: | Line 336: | ||
| | | ||
| For Each cella In tartomany | For Each cella In tartomany | ||
| - | If IsNumeric(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.1712693699.txt.gz · Last modified: 2024/04/09 20:14 by knehez
