tanszek:oktatas:muszaki_informatika:vba_feladatok
This is an old revision of the document!
Table of Contents
1. Munkalapok neveinek listázása
Ez a feladat egy olyan makró létrehozását kérte, amely listázza az összes munkalap nevét egy adott munkafüzetben. Az alábbi makró bemutatja, hogyan lehet végrehajtani ezt a feladatot.
Sub MunkalapokListazasa() Dim ws As Worksheet Dim lista As String lista = "Munkalapok listája:" & vbCrLf For Each ws In ThisWorkbook.Worksheets lista = lista & ws.Name & vbCrLf Next ws MsgBox lista, vbInformation, "Munkalapok" End Sub
Hogyan Működik?
- A
Sub MunkalapokListazasa()
egy eljárás, amely nem vár visszatérési értéket. Dim ws As Worksheet
- Egy változót deklarálunk, amely a munkafüzet minden egyes munkalapjára hivatkozik a ciklus során.Dim lista As String
- Egy szöveges változót hozunk létre, amelyben összegyűjtjük a munkalapok neveit.- A
For Each
ciklus végigmegy a jelenlegi munkafüzet összes munkalapján. - A
lista
változóhoz hozzáadjuk a munkalap nevét, majd egy új sort, hogy elkülönítsük a neveket. - Végül, a
MsgBox
függvény segítségével megjelenítjük az összegyűjtött munkalapneveket egy üzenetablakban.
2. Duplikált értékek keresése és kiemelése makróval
A feladat egy olyan makró létrehozása, amely megtalálja és kiemeli a duplikált értékeket egy adott tartományban az Excel munkalapon.
Sajnos függvénnyel nem lehet olyan cella paramétereit módosítani, ami más mint a függvény meghívásának cellája. Ezért a használat előtt ki kell jelölni azt a tartományt amit vizsgálni szeretnénk.
Sub DuplikaltakKiemelése() Dim tartomány As Range Set tartomány = Selection Dim cell As Range Dim ellenőrző As Object Set ellenőrző = CreateObject("Scripting.Dictionary") ' A tartomány celláinak bejárása For Each cell In tartomány If Not cell.Value = "" Then If ellenőrző.Exists(cell.Value) Then ' Duplikált érték kiemelése piros háttérszínnel cell.Interior.Color = RGB(255, 0, 0) Else ellenőrző.Add cell.Value, Nothing End If End If Next cell End Sub
Hogyan Működik?
- A makró először meghatározza a felhasználó által kijelölt tartományt a
Set tartomány = Selection
utasítással. - Egy
Scripting.Dictionary
objektumot hoz létre, amelyben csak különböző értékek tárolhatók. - Végigiterál a tartomány összes celláján.
- Ellenőrzi, hogy a cella értéke üres-e. Ha nem, megvizsgálja, hogy az érték szerepel-e már a Dictionary-ben.
- Ha az érték már szerepel (azaz duplikált), a cella hátterét pirosra színezi.
- Ha az érték még nem szerepel, hozzáadja a Dictionary-hoz.
tanszek/oktatas/muszaki_informatika/vba_feladatok.1708612644.txt.gz · Last modified: 2024/02/22 14:37 by knehez