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 Eachciklus végigmegy a jelenlegi munkafüzet összes munkalapján. - A
listaváltozóhoz hozzáadjuk a munkalap nevét, majd egy új sort, hogy elkülönítsük a neveket. - Végül, a
MsgBoxfü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 = Selectionutasítással. - Egy
Scripting.Dictionaryobjektumot 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
