User Tools

Site Tools


tanszek:oktatas:muszaki_informatika:vba_tutorial

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
tanszek:oktatas:muszaki_informatika:vba_tutorial [2024/04/10 11:26] kneheztanszek: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 alapvető típusokat és a vezérlési elemeket. 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 alapvető típusokat és a vezérlési elemeket.
 +
 +==== Makrók engedélyezése =====
 +
 +A Fájl/Beállítások/Adatvédelmi központ-nál állítsuk be a makrók engedélyezését és utána zárjuk be a munkafüzetet és indítsuk újra.
 +
 +{{:tanszek:oktatas:muszaki_informatika:pasted:20240222-080952.png}}
 +
 +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.
 +
 +{{:tanszek:oktatas:muszaki_informatika:pasted:20250408-181524.png}}
 +
 +Válasszuk ki a "Fejlesztőeszközök" fület, majd a "Makrók" gomb megnyomása utána felugró ablakban a jobb egérgombbal megjelenő menüben illesszünk be egy új modult:
 +
 +{{:tanszek:oktatas:muszaki_informatika:pasted:20240409-051647.png}}
 +
 +Definiáljunk egy teszt függvényt ami visszaad egy konstans értéket.
 +
 +{{:tanszek:oktatas:muszaki_informatika:pasted:20240409-051836.png}}
 +
 +<sxh vb>
 +Function teszt()
 +   teszt = 1
 +End Function
 +</sxh>
 +
 +használata: írjuk be egy cellába **=teszt()**
  
 ==== 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**: Logikai típus (Igaz vagy Hamis)   * **Boolean**: Logikai típus (Igaz vagy Hamis)
 +  * **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("Kérem a kör sugarát")
 +   
 +   area = r * r * Application.WorksheetFunction.Pi
 +   
 +   MsgBox area
 +End Sub
 +</sxh>
 ==== Vezérlési Elemek ==== ==== Vezérlési Elemek ====
  
Line 54: Line 97:
 Loop Loop
 </sxh> </sxh>
 +
 +----
  
 ==== Sztringek kezelése ==== ==== Sztringek kezelése ====
Line 132: Line 177:
 </sxh> </sxh>
  
 +----
  
-==== Makrók engedélyezése =====+==== Vektorok, tömbök kezelése ====
  
-A Fájl/Beállítások/Adatvédelmi központ-nál állítsuk be a makrók engedélyezését és utána zárjuk be a munkafüzetet és indítsuk újra.+<sxh> 
 +  Dim szamok(0 To 4) As Integer 
 +</sxh>
  
-{{:tanszek:oktatas:muszaki_informatika:pasted:20240222-080952.png}}+Ez egy 5 elemű tömb (indexei0, 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 "Fejlesztőeszközök" fület, majd a "Makrók" gomb megnyomása utána felugró ablakban a jobb egérgombbal megjelenő menüben illesszünk be egy új modult:+    MsgBox szamok(1)  ' Kiírja20 
 +End Sub 
 +</sxh>
  
-{{:tanszek:oktatas:muszaki_informatika:pasted:20240409-051647.png}}+Változó méretű tömb:
  
-Definiáljunk egy teszt függvényt ami visszaad egy konstans értéket.+<sxh> 
 +Sub DinamikusTomb() 
 +    Dim tomb() As String 
 +    ReDim tomb(1 To 3)
  
-{{:tanszek:oktatas:muszaki_informatika:pasted:20240409-051836.png}}+    tomb(1) = "alma" 
 +    tomb(2) = "banán" 
 +    tomb(3) = "citrom"
  
-<sxh vb> +    MsgBox tomb(2 ' banán 
-Function teszt() +End Sub
-   teszt = 1 +
-End Function+
 </sxh> </sxh>
  
-használataírjuk be egy cellába **=teszt()**+Tömb különböző típusú elemekkel:
  
 +<sxh>
 +Sub FixMeretuTomb()
 +   Dim arr(5)
 +   arr(0) = "1"           'Number as String
 +   arr(1) = "VBScript"    'String
 +   arr(2) = 100           'Number
 +   arr(3) = 2.45          'Decimal Number
 +   arr(4) = #10/7/2033#   'Date
 +   arr(5) = #12:45:00 PM# 'Time
 +  
 +   MsgBox ("Value stored in Array index 0 : " & arr(0))
 +   MsgBox ("Value stored in Array index 1 : " & arr(1))
 +   MsgBox ("Value stored in Array index 2 : " & arr(2))
 +   MsgBox ("Value stored in Array index 3 : " & arr(3))
 +   MsgBox ("Value stored in Array index 4 : " & arr(4))
 +   MsgBox ("Value stored in Array index 5 : " & arr(5))
 +End Sub
 +</sxh>
 +
 +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
 +</sxh>
 +
 +//megjegyzés:// ilyenkor az immediate ablakban jelenik meg a kimenet a szerkesztőben.
 +
 +A tömb határainak lekérdezése:
 +
 +<sxh>
 +Dim tomb(3 To 7) As Integer
 +MsgBox LBound(tomb)  ' alsó határ (3)
 +MsgBox UBound(tomb)  ' felső határ (7)
 +</sxh>
 +
 +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
 +</sxh>
 ---- ----
 +==== 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