Mikor elkezdtem makrókat írni, gyakran kellettek az aktív munkafüzet bizonyos adatai, úgy mint a név, fájl helye, tartalmaz-e makrót, védett-e a VBA projekt stb.
Ezeket eléggé sziszifuszi munka volt leellenőrizni, ezért állítottam össze ezt a hasznos kis makrót:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
Sub AktivMunkafuzetAlapAdatok() Dim i As Long, Levedve As Boolean, Szoveg1 As String, Szoveg2 As String, Szoveg3 As String 'készítette: XLMotyo '---------------------------------------------------------- 'Hivatkozás arra hogy az Excel fájl tartalmaz-e makrót: 'https://social.msdn.microsoft.com/Forums/en-US/a6af7e3f-6854-43a6-a3be-910a82977247/how-to-identify-the-excel-file-contains-macro-or-not?forum=exceldev '---------------------------------------------------------- 'Mielõtt futtatjuk a makrót két dolgot kell végrehajtani: '1. 'Excelben: 'az alábbi opciót be kell pipálni: 'File (Fájl)- Options (Beállítás)- Trust Center (Adatvédelmi Központ)- 'Trust Center Settings (Az Adatvédelmi Központ Beállításai)- Macro Settings (Makróbeállítások) - 'Trust access to the VBA project object model (A VBA-projekt objektummodelljéhez való hozzáférés megbízható) '2. 'VBE (VBA szerkesztõjében): 'hozzáadni az alábbi hivatkozást: 'Tools - References - Microsoft Visual Basic for Applications Extensibility 5.3 'itt az alábbi kódrészlet hozzáadja automatikusan: On Error Resume Next ActiveWorkbook.VBProject.References.AddFromGuid GUID:="{0002E157-0000-0000-C000-000000000046}", Major:=5, Minor:=3 On Error GoTo 0 '--------------------- 'aktív munkafüzet védett-e: If ActiveWorkbook.VBProject.Protection = 1 Then '1 = "vbext_pp_locked" Levedve = True ElseIf ActiveWorkbook.VBProject.Protection = 0 Then '1 = "vbext_pp_none" Levedve = False End If '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' If ActiveWorkbook.HasVBProject Then 'ha az aktív munkafüzet tartalmaz VBA projektet If Levedve Then 'aktív munkafüzet védett Szoveg1 = "Makrót vagy üres modult tartalmaz:" & vbNewLine & "Igen" & vbNewLine & vbNewLine Szoveg2 = "a VBA projekt védett:" & vbTab & vbNewLine & "Igen" Else 'aktív munkafüzet NEM védett Szoveg1 = "Makrót vagy üres modult tartalmaz:" & vbNewLine & "Igen" & vbNewLine & vbNewLine Szoveg2 = "a VBA projekt védett:" & vbTab & vbNewLine & "Nem" End If Else 'ha az aktív munkafüzet NEM tartalmaz VBA projektet If Levedve Then 'aktív munkafüzet védett Szoveg1 = "Makrót vagy üres modult tartalmaz:" & vbNewLine & "Nem" & vbNewLine & vbNewLine Szoveg2 = "a VBA projekt védett:" & vbTab & vbNewLine & "Igen" Else 'aktív munkafüzet NEM védett Szoveg1 = "Makrót vagy üres modult tartalmaz:" & vbNewLine & "Nem" & vbNewLine & vbNewLine Szoveg2 = "a VBA projekt védett:" & vbTab & vbNewLine & "Nem" End If End If Szoveg3 = "Fájl neve: " & vbNewLine & ActiveWorkbook.Name & vbNewLine & vbNewLine & _ "Fájl helye: " & vbNewLine & ActiveWorkbook.Path & Application.PathSeparator & vbNewLine & vbNewLine & _ "Tárgy: " & vbNewLine & ActiveWorkbook.BuiltinDocumentProperties("Subject") & vbNewLine & vbNewLine '"ActiveWorkbook.BuiltinDocumentProperties("Subject")": fájlra jobb egérgombbal kattintunk, kiválasztjuk a 'Properties menüpontot, majd a Details fülre kattintunk, itt lesz a "Subject" látható 'végeredmény kiíratása: MsgBox Szoveg3 & Szoveg1 & Szoveg2, , "Aktív munkafüzet alapadatai" End Sub |
Az adott munkafüzetbe szúrjunk be egy modult a Visual Basic szerkesztőjében és az alábbi kódot másoljuk bele vagy az egyéni makró munkafüzethez (Personal.xlsb-hez) is hozzáadhatjuk.
Videó magyarázattal (magyar és angol nyelvű Excel-hez):
Print screen:
Frissítés 2020. januárjában:
Jó hír annak, aki Office 365-öt használ: a “Review” (“Véleményezés”) menüben elérhető a “Workbook Statistics” (“Munkafüzet-statisztika”):
Kattintsunk rá és megjelenik pár előre megadott információ a munkalapról és a munkafüzetről:
Érdekesség, hogy a “Workbook Statistics” parancsot egy .xlsx fájlban futtattam (makrómentes), mégis a fenti képen az utolsó – “Macros” – mellett 373 szerepel. Ez az egyéni makró munkafüzet (Personal.xlsb) miatt van, hiszen ez is megnyílik, ha elindítjuk az Excelt. Vagyis a fenti képnél a “Workbook” szó alatt valószínűleg az összes megnyitott munkafüzetet kell érteni.
Ezt az opciót egyébként hozzá tudjuk adni a menüszalaghoz vagy a gyorselérési eszköztárhoz is. Továbbá, ha nem akarunk mindig bemenni a “Review” menübe és onnan elérni:
kattintsunk jobb egérgombbal az állapotsávon (status bar), tegyük be a pipát a “Workbook Statistics” elé, és innentől elég a bal alsó sarokban megjelenő szövegre kattintanunk:
Nekem a makrós verzió hasznosabb, mivel egyértelműbb milyen infókat ír ki, illetve testre szabhatóbb.
Remélem hasznos volt a poszt.
Kérdésed, észrevételed van? Hívj vagy dobj egy emailt: xlmotyo@gmail.com