User Tools

Site Tools


tanszek:oktatas:muszaki_informatika:vba_feladatok

This is an old revision of the document!


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