Felhasználói eszközök

Eszközök a webhelyen


tanszek:oktatas:muszaki_informatika:vba_tutorial

Különbségek

A kiválasztott változat és az aktuális verzió közötti különbségek a következők.

Összehasonlító nézet linkje

Előző változat mindkét oldalon Előző változat
Következő változat
Előző változat
tanszek:oktatas:muszaki_informatika:vba_tutorial [2024/02/21 19:48]
knehez
tanszek:oktatas:muszaki_informatika:vba_tutorial [2024/02/22 10:21] (aktuális)
knehez
Sor 1: Sor 1:
-==== Excel VBA alapok ​====+====== Excel VBA alapjai ====== 
 + 
 +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. 
 + 
 +==== Változók Deklarálása ==== 
 + 
 +A VBA-ban a változók deklarálása a ''​Dim''​ kulcsszóval történik. A változó típusát is megadhatjuk a deklaráció során, ami segít a kód olvashatóságában és a típushibák elkerülésében. 
 + 
 +  * **Példa**: Egyszerű változó deklaráció 
 +<​code>​ 
 +Dim szam As Integer 
 +Dim szoveg As String 
 +</​code>​ 
 + 
 +==== Alapvető Típusok ==== 
 + 
 +A VBA számos alapvető adattípust támogat, többek között: 
 + 
 +  * **Integer**:​ Egész számok 
 +  * **Long**: Nagyobb egész számok 
 +  * **Single**: Lebegőpontos számok (egyszeres pontossággal) 
 +  * **Double**: Lebegőpontos számok (kétszeres pontossággal) 
 +  * **String**: Szöveges típus 
 +  * **Boolean**:​ Logikai típus (Igaz vagy Hamis) 
 + 
 +==== Vezérlési Elemek ==== 
 + 
 +A VBA vezérlési szerkezetei lehetővé teszik a program ágának irányítását a különböző feltételek alapján. 
 + 
 +  * **If...Then...Else** 
 +<​code>​ 
 +If szam > 10 Then 
 +    MsgBox "A szám nagyobb, mint 10." 
 +Else 
 +    MsgBox "A szám 10 vagy annál kisebb."​ 
 +End If 
 +</​code>​ 
 + 
 +  * **For Next Ciklus** 
 +<​code>​ 
 +For i = 1 To 5 
 +    MsgBox "​Szám:​ " & i 
 +Next i 
 +</​code>​ 
 + 
 +Itt fontos megjegyezni hogy a szövegeket //&// jellel adjuk össze, nem a plusz operátorral! 
 + 
 +  * **Do While Loop** 
 +<​code>​ 
 +i = 1 
 +Do While i <= 5 
 +    MsgBox "​Szám:​ " & i 
 +    i = i + 1 
 +Loop 
 +</​code>​ 
 + 
 +==== Összefoglalás ==== 
 + 
 +Ez a fejezet bevezetést nyújtott az Excel VBA alapjaihoz, beleértve a változók deklarálását,​ az alapvető típusokat és a vezérlési elemeket. A bemutatott kódpéldákkal könnyebbé válik az alapvető programozási koncepciók megértése és alkalmazása. 
 + 
 +==== 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}}
  
 Definiáljunk egy teszt függvényt ami visszaad egy konstans értéket. Definiáljunk egy teszt függvényt ami visszaad egy konstans értéket.
Sor 10: Sor 74:
  
 használata:​ írjuk be egy cellába **=teszt()** használata:​ írjuk be egy cellába **=teszt()**
 +
 +----
  
 Adjunk össze két számot. Adjunk össze két számot.
Sor 19: Sor 85:
  
 használata:​ **=Osszeadas(A1;​B1)** használata:​ **=Osszeadas(A1;​B1)**
 +----
 +Írjunk egy függvényt,​ amely egy sztringet vesz bemenetként,​ és visszaadja annak fordított változatát.
  
 +<sxh vb>
 +Function SzovegForditas(szoveg As String) As String
 +    Dim i As Integer
 +    For i = Len(szoveg) To 1 Step -1
 +        SzovegForditas = SzovegForditas & Mid(szoveg, i, 1)
 +    Next i
 +End Function
 +</​sxh>​
 +----
 Ez a függvény egy tartomány elemeinek átlagát számítja ki. Ez a függvény egy tartomány elemeinek átlagát számítja ki.
 +
 +<sxh vb>
 +Function TartomanyAtlag(tartomany As Range) As Double
 +    Dim osszeg As Double
 +    Dim db As Long
 +    ​
 +    osszeg = 0
 +    db = 0
 +    ​
 +    For Each cella In tartomany
 +        osszeg = osszeg + cella.Value
 +        db = db + 1
 +    Next cella
 +    ​
 +    TartomanyAtlag = osszeg / db
 +End Function
 +</​sxh>​
 +
 +Töltsük fel tetszőleges értékekkel a A1 és B2 téglalapba eső cellákat:
 +{{:​tanszek:​oktatas:​muszaki_informatika:​pasted:​20240221-192107.png}}
 +
 +Egy másik cellába írjukbe: **=TartomanyAtlag(A1:​B2)**
 +
 +Viszont, ha az értékek között van olyan ami nem szám, akkor nem működik, ezért alakítsuk át, hogy kezelje a kivételeket is.
 +
 <sxh vb> <sxh vb>
 Function TartomanyAtlag(tartomany As Range) As Double Function TartomanyAtlag(tartomany As Range) As Double
Sor 45: Sor 147:
 </​sxh>​ </​sxh>​
  
-Töltsük fel tetszőleges értékekkel a A1 és B2 téglalapba eső cellákat:​ +Töltsük fel tetszőleges értékekkel a A1 és B2 téglalapba eső cellákat, de az egyiket akarattal elrontjuk: 
-{{:​tanszek:​oktatas:​muszaki_informatika:​pasted:​20240221-192107.png}}+ 
 +{{:​tanszek:​oktatas:​muszaki_informatika:​pasted:​20240221-195608.png}} 
 + 
 +Egy másik cellába írjukbe: **=TartomanyAtlag(A1:​B2)** 
 + 
 +---- 
 + 
 +Szorozzunk össze egy mátrix-ot egy vektorral:​ 
 + 
 +<sxh vb> 
 +Function MatrixVektorSzorzas(matrix As Range, vektor As Range) As Variant 
 +    Dim sorok As Long, oszlopok As Long, i As Long, j As Long 
 +    Dim eredmeny() As Double 
 +      
 +    sorok = matrix.Rows.Count 
 +    oszlopok = matrix.Columns.Count 
 +      
 +    ' Ellenőrizzük,​ hogy a vektor mérete megfelel-e a mátrix oszlopainak számával 
 +    If vektor.Rows.Count <> oszlopok Or vektor.Columns.Count > 1 Then 
 +        MatrixVektorSzorzas = CVErr(xlErrValue) 
 +        Exit Function 
 +    End If 
 +      
 +    ' oszlopvektor legyen az eredmény 
 +    ReDim eredmeny(1 To sorok, 1 To 1) As Double 
 +      
 +    For i = 1 To sorok 
 +        For j = 1 To oszlopok 
 +            eredmeny(i, 1) = eredmeny(i, 1) + matrix.Cells(i,​ j).Value * vektor.Cells(j,​ 1).Value 
 +        Next j 
 +    Next i 
 +      
 +    MatrixVektorSzorzas = eredmeny 
 +End Function 
 +</​sxh>​ 
 + 
 +Használata például ez lehet: 
 + 
 +{{:​tanszek:​oktatas:​muszaki_informatika:​pasted:​20240222-051514.png}}
  
-Egy másik cellába írjukbe: **=ÁTLAG(A1:​B2)**+---
  
-konkrét értékekkel így adhatjuk meg: **=Atlag({1;​ 2; 3; 4; 5})** 
  
  
tanszek/oktatas/muszaki_informatika/vba_tutorial.1708544899.txt.gz · Utolsó módosítás: 2024/02/21 19:48 szerkesztette: knehez