VBA(Excel) az "utoljára mentette" a fájl megnyitása nélkül
2022-02-28T12:33:33+01:00
2022-03-03T14:29:22+01:00
2022-08-12T07:45:29+02:00
DaNarancs
Sziasztok!

Szeretném kilistázni az adott mappában lévő fájlok tulajdonságai közül az "utoljára mentette" értéket, vagyis hogy ki volt az utolsó módosítója, mindezt anélkül, hogy egyesével kéne megnyitogatnom a tulajdonságaikat. Azt már sikerült megoldanom a BuiltinDocumentProperties("Last Author") funkcióval, hogy ha megnyitogatom a fájlokat, akkor ki tudom nyerni belőlük ezt az adatot, de nagyméretű fájloknál ez egy igen időigényes (és mivel azonnal be is lehet zárni, így talán felesleges) művelet, miközben a Windows jobbgombos tulajdonságai közt egy szempillantás alatt megvan a keresett adat. Néztem még a Folder.GetDetailsOf eljárást is, de ott meg nincs meg ez a csak Office fájlokra jellemző adat. Szóval a kérdésem, hogy miként tudnám kinyerni ezt az adatot a fájl megnyitása nélkül?

Köszi előre is!
Mutasd a teljes hozzászólást!

  • Option Explicit Sub Test() Dim varPath As Variant Dim varFileName As Variant varPath = "C:\Users\foo\bar" '<~~ ensure final \ varFileName = "lol.xlsx" 'depending on OS version, try 9, 10 and 20 Debug.Print GetAuthorFromShell(varPath, varFileName, 9) Debug.Print GetAuthorFromShell(varPath, varFileName, 10) Debug.Print GetAuthorFromShell(varPath, varFileName, 20) End Sub Function GetAuthorFromShell(varPath As Variant, varFileName As Variant, intProperty As Integer) As String Dim objShell As Object Dim objFolder As Object Dim strAuthor As String Set objShell = CreateObject("Shell.Application") Set objFolder = objShell.Namespace(varPath) With objFolder strAuthor = .getdetailsof(.Items.Item(varFileName), intProperty) End With GetAuthorFromShell = strAuthor End Function
    bővebben itt:
    link
    Mutasd a teljes hozzászólást!
  • Igen, ezt írtam én is, ez a GetDetailsOf eljárás, ami viszont sajnos nem tartalmazza az általam keresett, csak Office fájlokra jellemző paramétert. Itt van amúgy egy teljes lista az elérhető értékekről, amiből a fájl tulajdonosa (10-es) és létrehozója (20-as) valóban kiderül, de hogy ki módosította/mentette utoljára, az nem. Mellesleg Windows 10 lenne a használt oprendszer, elvileg ez is számít.
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd