
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!
Nekem ez magas, inkább segítséget kérek!
Ha esetleg más szolgáltatásaink, vagy épp termékeink érdekelnek, nézz szét a webshopban: többek között egyedi vászontáska, egyedi bögre, egyedi póló készítéssel állunk rendelkezésedre, ha szeretnéd vállalkozásodat reklámozni!