5+1 egyszerű Excel VBA program, amely megkönnyíti a munkádat

5+1 egyszerű Excel VBA program, amely megkönnyíti a munkádat

Az Excel VBA (Visual Basic for Applications) egy nagyszerű eszköz, amellyel automatizálhatod a mindennapi munkafolyamatokat, időt takaríthatsz meg, és csökkentheted az emberi hibákat. Ebben a blogbejegyzésben bemutatunk 5+1 egyszerű, de hatékony VBA programot, amelyek segítenek a hatékonyság növelésében.

Fontos megjegyzés: A VBA makrók használata előtt mindig készíts biztonsági mentést a munkafüzetedről, és győződj meg róla, hogy a fájl .xlsm vagy .xlsb formátumban van mentve, különben a makrók nem fognak működni. A leírt makrókat mindenki saját felelősségére használja, és ajánlott tesztkörnyezetben kipróbálni őket, mielőtt éles adatokon futtatnád.


Hogyan hozzunk létre VBA makrókat?

Ha még nem használtál VBA-t, kövesd az alábbi lépéseket a makrók létrehozásához:

  1. Nyisd meg az Excel programot és hozz létre egy új vagy meglévő munkafüzetet.
  2. Nyomd meg az ALT + F11 billentyűkombinációt, hogy megnyisd a VBA szerkesztőt.
  3. A bal oldali Project Explorer panelen válaszd ki az adott munkafüzetet.
  4. Kattints a "Insert" → "Module" menüpontra, hogy új modult hozz létre.
  5. Másold be a kívánt VBA kódot a szerkesztőablakba.
  6. Nyomd meg a CTRL + S billentyűkombinációt a mentéshez.
  7. Az Excelben engedélyezd a makrókat (ha szükséges) a „Makró beállítások” menüben.
  8. A makró futtatásához nyomd meg az ALT + F8 billentyűkombinációt, válaszd ki a kívánt makrót, majd kattints a „Run” (Futtatás) gombra.

Most pedig nézzük az öt hasznos VBA makrót!


1. Üres sorok törlése munkafüzetben

Gyakorlati példa: Ha egy Excel táblázatban sok üres sor van az adatok között, ez a makró segít eltávolítani őket, így könnyebb az adatok kezelése és átláthatóbb lesz a táblázat.

Kód:

Sub UresSorokTorlese()
    Dim rng As Range
    Dim cell As Range
    Dim delRows As Range
    
    Set rng = ActiveSheet.UsedRange
    
    For Each cell In rng.Columns(1).Cells
        If Application.WorksheetFunction.CountA(cell.EntireRow) = 0 Then
            If delRows Is Nothing Then
                Set delRows = cell
            Else
                Set delRows = Union(delRows, cell)
            End If
        End If
    Next cell
    
    If Not delRows Is Nothing Then delRows.EntireRow.Delete
End Sub

2. Automatikus backup fájl mentése mentéskor

Gyakorlati példa: Ha egy nagy projekten dolgozol és félsz az adatvesztéstől, ez a makró automatikusan készít egy másolatot a fájlról minden mentéskor.

Kód:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    Dim BackupPath As String
    BackupPath = ThisWorkbook.Path & "\Backup_" & Format(Now, "YYYYMMDD_HHMMSS") & ".xlsm"
    ThisWorkbook.SaveCopyAs BackupPath
End Sub

3. Duplikált értékek törlése az első oszlopból

Gyakorlati példa: Ha egy ügyféllistában többször szerepelnek ugyanazok a nevek vagy adatok, ezzel a makróval gyorsan eltávolíthatók a duplikátumok.

Kód:

Sub DuplikaltTorles()
    Dim rng As Range
    Set rng = ActiveSheet.UsedRange
    rng.RemoveDuplicates Columns:=Array(1), Header:=xlYes
End Sub

4. 100 db random szám generálása az első oszlopban

Gyakorlati példa: Ha statisztikai vagy matematikai számításokat kell végezned, és szükséged van véletlenszerű számokra egy gyors teszteléshez, ez a makró hasznos lehet.

Kód:

Sub RandomSzamGeneralas()
    Dim i As Integer
    For i = 1 To 100
        Cells(i, 1).Value = Int((1000 - 1 + 1) * Rnd + 1)
    Next i
End Sub

5. Automatikus mentés adott időközönként

Gyakorlati példa: Ha hosszú ideig dolgozol egy Excel fájlon, és szeretnéd elkerülni az adatvesztést egy esetleges rendszerhiba vagy áramkimaradás miatt, ez a makró automatikusan menti a fájlt meghatározott időközönként.

Kód:

Sub AutomatikusMentes()
    Application.DisplayAlerts = False
    ActiveWorkbook.Save
    Application.DisplayAlerts = True
    Application.OnTime Now + TimeValue("00:10:00"), "AutomatikusMentes"
End Sub

+1. Szavak automatikus kiemelése Word dokumentumban

Gyakorlati példa: Ha egy hosszú Word dokumentumban szeretnél gyorsan kiemelni egy adott szót (például egy kulcsszót egy jelentésben), ez a makró gyorsan megteszi helyetted.

Kód:

Sub KiemelesWordben()
    Dim wdApp As Object
    Dim wdDoc As Object
    Dim wdRange As Object
    Dim keresettSzo As String
    
    keresettSzo = "Excel"
    
    On Error Resume Next
    Set wdApp = GetObject(, "Word.Application")
    If wdApp Is Nothing Then Set wdApp = CreateObject("Word.Application")
    On Error GoTo 0
    
    Set wdDoc = wdApp.ActiveDocument
    
    With wdDoc.Range.Find
        .Text = keresettSzo
        .Replacement.Text = keresettSzo
        .Replacement.Font.Bold = True
        .Replacement.Font.ColorIndex = 6 'Piros
        .Execute Replace:=2
    End With
    
    wdApp.Visible = True
End Sub

Összegzés

Ezek az egyszerű, de hatékony VBA makrók segíthetnek az Excel-használatod optimalizálásában. Legyen szó üres sorok törléséről, automatikus mentésről vagy Word dokumentum szerkesztéséről, ezek a makrók időt takarítanak meg és csökkentik a hibalehetőségeket.

Ne feledd: Mindig készíts biztonsági mentést a fontos fájljaidról, és csak megbízható forrásból származó VBA kódokat használj! Ha szeretnél további hasznos VBA megoldásokat, írd meg kommentben, milyen feladatra keresel megoldást!

 

Nekem ez magas, inkább segítséget kérek!

Vissza a blogba

Hozzászólás írása

Felhívjuk a figyelmedet, hogy a hozzászólásokat jóvá kell hagyni a közzétételük előtt.