
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:
- Nyisd meg az Excel programot és hozz létre egy új vagy meglévő munkafüzetet.
-
Nyomd meg az
ALT + F11
billentyűkombinációt, hogy megnyisd a VBA szerkesztőt. - A bal oldali Project Explorer panelen válaszd ki az adott munkafüzetet.
- Kattints a "Insert" → "Module" menüpontra, hogy új modult hozz létre.
- Másold be a kívánt VBA kódot a szerkesztőablakba.
- Nyomd meg a
CTRL + S
billentyűkombinációt a mentéshez. - Az Excelben engedélyezd a makrókat (ha szükséges) a „Makró beállítások” menüben.
- 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!