Avatar billede anderskhansen Nybegynder
26. februar 2009 - 20:54 Der er 6 kommentarer og
1 løsning

Udtræk af file properties som subject, status, artists på vilkårlige filer

Sidder og pusler lidt med at få strikket en VBA kode sammen i excel der er i stand til at trække fil properties (fx subject) ud på vilkårlig filtyper i en mappe. Jeg har imidlertid ikke været i stand til at løse dette problem er der nogle der ligger inde med gode indput?

Og i samme omgang er det også interessant om det er muligt at skrive/ændre subject på den pågældende fil bagefter udtrækket er foretaget?
Avatar billede arne_v Ekspert
26. februar 2009 - 22:25 #1
Check http://www.cpearson.com/excel/docprop.aspx under "Returning Property Values From A Closed File".
Avatar billede Lene Fredborg Ekspert
26. februar 2009 - 23:39 #2
Se denne artikel:
http://word.mvps.org/faqs/macrosvba/DSOFile.htm

Vha. information i artiklen og links deri kan du installere en fil, dsofile.dll, og skrive VBA-kode, som gør det muligt at redigere document properties i Office-dokumenter uden at åbne filerne. Hvis "vilkårlige filtyper" omfatter ikke-Office-filer, er det jo ikke tilstrækkeligt.

Artiklen omtaler Word. Jeg har selv udelukkende prøvet at benytte dsofile.dll fra VBA i Word. Men fremgangsmåden skulle være den samme i de forskellige Office-programmer.
Avatar billede tjp Mester
26. februar 2009 - 23:58 #3
Den her funktion viser detaljer for en given fil i en given folder:

Function ShowProperties(sFileName, sFolderPathspec)
    Dim  objShell, objFolder, objParsename, i, s, arr
    arr = Array("0 Name              ", "1 Size              ", "2 Type              ", "3 Date Modified      ", "4 Date Created      ", "5 Date Accessed      ", "6 Attributes        ", "7 Status            ", "8 Owner              ", "9 Author            ", _
              "10 Title            ", "11 Subject          ", "12 Category          ", "13 Pages            ", "14 Comments          ", "15 Copyright        ", "16 Artist            ", "17 Album Title      ", "18 Year              ", "19 Track Number      ", _
              "20 Genre            ", "21 Duration          ", "22 Bit Rate          ", "23 Protected        ", "24 Camera Model      ", "25 Date Picture Taken", "26 Dimensions        ", "27                  ", "28                  ", "29 Episode Name      ", _
              "30 Program Description", "31                  ", "32 Audio sample size ", "33 Audio sample rate ", "34 Channels          ", "35 Company          ", "36 Description      ", "37 File Version      ", "38 Product Name      ", "39 Product Version  ", "40 Keywords          ")   
   
    Set objShell = CreateObject("Shell.Application")
    Set objFolder = objShell.Namespace(sFolderPathspec)
   
    Set objParsename = objFolder.Parsename(sFileName)
    s = ""
    For i = 0 To 40
        s = s & arr(i) & ": " & vbTab & objFolder.GetDetailsOf(objFolder.Parsename(sFileName), i) & vbNewLine
    Next
   
    ShowProperties = s
End Function
Avatar billede Lene Fredborg Ekspert
27. februar 2009 - 00:10 #4
Jeg ser nu, at du allerede fra arne_v havde fået et andet link om dsofile.dll. Det nye layout af eksperten.dk snyder mig sommetider, så jeg overser et svar, når det er kort...
Avatar billede anderskhansen Nybegynder
04. marts 2009 - 12:46 #5
Super jeg har brug for lige nøjagtig det tjp skriver da det handler om vilkårlige filer og ikke kun office dokumenter som dsofile.dll refererer til så vidt jeg ved.

Sagen er måske dog lidt mere kompleks end som så. For så vidt jeg ved så sker der det at så snart at jeg har brugt tjp´s kode så har jeg lagt informationerne ind i et array og dermed har jeg kun mulighed for at læse data og ikke ændre dem. Så jeg har stadig brug for at vide hvordan kan jeg i så fald benytte tjp's kode til at trække de info ud jeg har brugt fx. i et excel ark. For derefter at ændre dem og efterfølgende sende/skrive ændringerne til de pågældende filer?
Avatar billede anderskhansen Nybegynder
20. marts 2009 - 18:18 #6
Hmm er der virkelig ingen der har lyst til at byde ind på andet spørgsmål. Hvis der ikke er det må jeg heller tildele tjp point for det er løsningen på mit første spørgsmål
Avatar billede tjp Mester
07. maj 2009 - 10:11 #7
Hov! ;-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester