Felhasználói eszközök

Eszközök a webhelyen


tanszek:oktatas:muszaki_informatika:vba_tutorial

Ez a dokumentum egy előző változata!


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ó
Dim szam As Integer
Dim szoveg As String

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
If szam > 10 Then
    MsgBox "A szám nagyobb, mint 10."
Else
    MsgBox "A szám 10 vagy annál kisebb."
End If
  • For Next Ciklus
For i = 1 To 5
    MsgBox "Szám: " & i
Next i
  • Do While Loop
i = 1
Do While i <= 5
    MsgBox "Szám: " & i
    i = i + 1
Loop

Ö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.

Definiáljunk egy teszt függvényt ami visszaad egy konstans értéket.

Function teszt()
   teszt = 1
End Function

használata: írjuk be egy cellába =teszt()


Adjunk össze két számot.

Function Osszeadas(szam1 As Double, szam2 As Double) As Double
    Osszeadas = szam1 + szam2
End Function

használata: =Osszeadas(A1;B1)


Ez a függvény egy tartomány elemeinek átlagát számítja ki.

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

Töltsük fel tetszőleges értékekkel a A1 és B2 téglalapba eső cellákat:

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.

Function TartomanyAtlag(tartomany As Range) As Double
    Dim cella As Range
    Dim osszeg As Double
    Dim db As Long
    
    osszeg = 0
    db = 0
    
    For Each cella In tartomany
        If IsNumeric(cella.Value) Then
            osszeg = osszeg + cella.Value
            db = db + 1
        End If
    Next cella
    
    If db > 0 Then
        TartomanyAtlag = osszeg / db
    Else
        TartomanyAtlag = 0
    End If
End Function

Töltsük fel tetszőleges értékekkel a A1 és B2 téglalapba eső cellákat, de az egyiket akarattal elrontjuk:

Egy másik cellába írjukbe: =TartomanyAtlag(A1:B2)


Szorozzunk össze egy mátrix-ot egy vektorral:

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

Használata például ez lehet:

tanszek/oktatas/muszaki_informatika/vba_tutorial.1708587165.txt.gz · Utolsó módosítás: 2024/02/22 07:32 szerkesztette: knehez