| |  | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte | | |  | Von Digital Twins bis Hochleistungs-Computing: PNY präsentiert seine Zukunftstechnologien für die Industrie von morgen, eine Pressemitteilung
|
Autor
|
Thema: VBA iProps schreiben - Datei unsichtbar öffnen (2523 mal gelesen)
|
RolandD Mitglied
  
 Beiträge: 559 Registriert: 07.01.2005 i7-9700k 32GB DDR4-RAM Nvidia RTX 2060 SSD 970 m.2 Win10-64 (21H2) AIP 2020.3 Dell U3417W
|
erstellt am: 01. Dez. 2013 18:51 <-- editieren / zitieren --> Unities abgeben:         
Hallo, ein kleines "Sonntagsproblem": Ich muss die iProperties in diverse Dateien angleichen. Da es ca. 40.000 Dateien sind (IPT und IAM) wollte ich das mit einem VBA-Makro erledigen: - alle Pfade und Unterpfade scannen - Datei öffnen, iProperties umsortieren - Speichern schließen, nächste Datei. Funktioniert bisher auch alles, nur kann ich die Datei nicht öffnen, ohne Bildschirmanzeige. Da das Öffnen und Anzeigen rel. lange dauert (vor allem bei IAMs) will ich unsichtbar öffnen: Hier ein kleines Testprogramm, das ein Test.ipt auf D:\ öffnet und die aktuelle Uhrzeit schreibt: Code: Sub iProp_Test() 'Schreiben von iProps ohne Bildschirmanzeige Dim oDoc As Document Dim fs As Object Dim Dateiname As String Dateiname = "D:\Test.ipt" Set fs = CreateObject("Scripting.FileSystemObject") If fs.FileExists(Dateiname) = True Then Dim oOptions As NameValueMap Set oOptions = ThisApplication.TransientObjects.CreateNameValueMap oOptions.Value("SkipAllUnresolvedFiles") = True 'fehlende Referenzen ignorieren 'unsichtbar öffnen mit false funktioniert nicht! Set oDoc = ThisApplication.Documents.OpenWithOptions(Dateiname, oOptions, True) 'Set oDoc = ThisApplication.Documents.Open(Dateiname, True) End If Dim SysTime As String SysTime = Format(Time, "hh:mm:ss") oDoc.PropertySets("{D5CDD505-2E9C-101B-9397-08002B2CF9AE}").Item("Zeit").Delete oDoc.PropertySets("{D5CDD505-2E9C-101B-9397-08002B2CF9AE}").Add SysTime, "Zeit" oDoc.Update 'Werte aktualisieren ' Save and close die Datei ThisApplication.SilentOperation = True 'Speichern ohne Meldungsfenster oDoc.Close (False) ThisApplication.SilentOperation = False End Sub
Wenn ich Set oDoc = ThisApplication.Documents.OpenWithOptions(Dateiname, oOptions, False) eintrage wird gar keine Aktion ausgeführt. Wo ist mein Denkfehler??
------------------ Gruß Roland Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
PaulSchuepbach Moderator Programmierer
   

 Beiträge: 1005 Registriert: 01.10.2003
|
erstellt am: 02. Dez. 2013 08:03 <-- editieren / zitieren --> Unities abgeben:          Nur für RolandD
|
RolandD Mitglied
  
 Beiträge: 559 Registriert: 07.01.2005 i7-9700k 32GB DDR4-RAM Nvidia RTX 2060 SSD 970 m.2 Win10-64 (21H2) AIP 2020.3 Dell U3417W
|
erstellt am: 02. Dez. 2013 10:48 <-- editieren / zitieren --> Unities abgeben:         
Hallo Paul, Danke für deine Antwort. Du hast vollkommen recht, die Öffnen mit Optionen brauche ich nur für IAMs, da ich bereits weiß, dass viele Verknüpfungen nicht gefunden werden. Mein Problem ist aber das unsichtbar öffnen. Den Code habe ich nur als Test für jemanden, der erforschen will, weshalb bei unsichtbar öffnen eben keine iProperties geschrieben werden! Es ist viel einfacher, ein IPT zu erzeugen und zu testen. Im Code steht auch das normale öffnen. Code: Set oDoc = ThisApplication.Documents.Open(Dateiname, True) 'funktioniert, Datei wird aber angezeigt Set oDoc = ThisApplication.Documents.Open(Dateiname, False) 'funktioniert nicht
Das hat aber den gleichen Fehler, dass bei unsichtbar Öffnen das iPropertie Zeit nicht geschrieben wird. ------------------ Gruß Roland [Diese Nachricht wurde von RolandD am 02. Dez. 2013 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |

| |
RolandD Mitglied
  
 Beiträge: 559 Registriert: 07.01.2005 i7-9700k 32GB DDR4-RAM Nvidia RTX 2060 SSD 970 m.2 Win10-64 (21H2) AIP 2020.3 Dell U3417W
|
erstellt am: 02. Dez. 2013 20:35 <-- editieren / zitieren --> Unities abgeben:         
Hallo Paul, ich habe nochmals verschiedene Kombinationen getestet. Es funktioniert unsichtbar öffnen mit Code: Set oDoc = ThisApplication.Documents.Open(Dateiname, False) 'hier Bearbeitung einfügen oDoc.Save ' Save and close die Datei ThisApplication.SilentOperation = True 'Speichern ohne Meldungsfenster oDoc.Close ThisApplication.SilentOperation = False
Aber da es Dateien aus IV2010 sind, die mit IV2014 bearbeitet werden, kommt dann das Fenster "Datenformat hat sich geändert". Das kann nicht automatisch quittiert werden. Somit bleibt mir nur übrig, sichtbar zu öffnen und ohne separates " oDoc.Sace " zu speichern und schließen ------------------ Gruß Roland Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
 |