Um möglichst universell zu bleiben wollte ich die Sache mit der DSOfile.dll (Version 2.0 !) erledigen. Leider kann man (anders als bei den SummaryProperties) wie es scheint keine individuelle Abfrage eines bestimmten "custom property" machen, sondern das ganze nur als "Sammlung" in der Form einer For/Next Schleife abfragen. Siehe dazu auch
http://www.microsoft.com/germany/technet/datenbank/articles/600696.mspx Der Folgende Code ist mein bisheriger Stand:
Dim objFile As Object
Dim objProperty As Object
Dim Dateiname, Pfad, Title As String
Dim AttrZahl, AttrZahlMinus As String
Dim AttrName As Range
Dim AttrWert As String
Sub ImportButton_Click()
AttrZahl = Tabelle1.Range("C3").Value
AttrZahlMinus = "-" & AttrZahl
Worksheets("Drawings").Activate
Dateiname = Dir(Tabelle1.Range("C4").Value & "\*.SLDDRW")
Pfad = Tabelle1.Range("C4").Value & "\"
Tabelle1.Range("A8:Z500").Select
Selection.ClearContents
Tabelle1.Range("A8").Select
Do While Dateiname <> ""
ActiveCell.Value = Dateiname
ActiveCell.Offset(0, 1).Activate
Set AttrName = Tabelle1.Range("B6")
For i = 1 To AttrZahl
Set objFile = CreateObject("DSOFile.OleDocumentProperties")
objFile.Open (Pfad & Dateiname)
AttrWert = objFile.CustomProperties.AttrName ' <=== hier klemmts !
ActiveCell.Value = AttrWert
ActiveCell.Offset(0, 1).Activate
Set AttrName = AttrName.Offset(0, 1)
Next i
Set objFile = Nothing
ActiveCell.Offset(1, AttrZahlMinus - 1).Activate
Dateiname = Dir
Loop
MsgBox "Done!"
End Sub
Erklärung zum Excel-Tabelleninhalt:
- In Zelle C3 steht die Anzahl der abzurufenden "custom properties" (104)
- In Zelle C4 steht der Pfad zum Ordner, welcher alle auszulesenden *.SLDDRW enthält
- Zelle B6 bis Zelle DA6 stehen die 104 Attributnamen, die es auszulesen gilt
- In Zelle A8 soll der Dateiname vom SLDDRW eingetragen werden, ab B8 bis DA8 die dazugehörigen Attributwerte korrespondierend zu den oben stehenden Attributnamen.
Leider funktioniert die Form der Abfrage nicht so, wie das mit Solidworks-Mitteln gegangen wäre, also
ActiveCell.Value = Model.GetCustomInfoValue("", AttrName)
Hat noch irgendwer eine Idee?
------------------
Gruß Hilmar
[Diese Nachricht wurde von hico am 05. Feb. 2008 editiert.]
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP