Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst Office 2010, Word Verknüpfte Vorlage per VBA entfernen

Mitglied: pixel24

pixel24 (Level 1) - Jetzt verbinden

18.01.2014 um 09:33 Uhr, 9332 Aufrufe, 13 Kommentare

Hallo zusammen,

wir haben in vielen Dokumenten in Word eine Vorlagen-Verknüpung (Datei -> Optionen -> AddIns -> Vorlagen enthalten die nicht mehr relevant sind und entfernt werden müssen.

Diese zeigen auf einen alten Server der nicht mehr existiert und deshalb dauert das öffnen der Dokumente eine kleine Ewigkeit. Diese Verknüpfungen sehen in etwa so aus:

\\192.168.3.1\daten\WBS\Personal\Arbeitsvertraege EUR\die_alte_vorlage.dotx

Nun ist es nicht machbar alle Dokumente per Hand zu öffen und diese Verknüpfung zu entfernen. Bei Microsoft habe ich hierzu folgenden Artikel bzw. Lösung mittels VBA gefunden:

http://support.microsoft.com/?kbid=830561#4

Habe darin also lediglich die Variable OldServer entsprechend angepasst:


Sub Test()
Dim strFilePath As String
Dim strPath As String
Dim intCounter As Integer
Dim strFileName As String
Dim OldServer As String
Dim objDoc As Document
Dim objTemplate As Template
Dim dlgTemplate As Dialog
Dim nServer As Integer

'hardcode the name of the old server.

OldServer = "{192.168.3.1}"
nServer = Len(OldServer)
strFilePath = InputBox("What is the folder location that you want to use?")

If Right(strFilePath, 1) <> "\" Then strFilePath = strFilePath & "\"

strFileName = Dir(strFilePath & "*.doc")
Do While strFileName <> ""
Set objDoc = Documents.Open(strFilePath & strFileName)
Set objTemplate = objDoc.AttachedTemplate
Set dlgTemplate = Dialogs(wdDialogToolsTemplates)
strPath = dlgTemplate.Template

If LCase(Left(strPath, nServer)) = LCase(OldServer) Then
objDoc.AttachedTemplate = NormalTemplate
End If

strFileName = Dir()
objDoc.Save
objDoc.Close
Loop

Set objDoc = Nothing
Set objTemplate = Nothing
Set dlgTemplate = Nothing

End Sub

Wenn ich das Skript starte wir der Pfad abgefragt und es werden auch die Dokumente geöffnet und wieder geschlossen aber danach ist die Verknüpfung noch immer enthalten. Was mache ich falsch?

Viele Grüße
pixel24
Mitglied: colinardo
LÖSUNG 18.01.2014, aktualisiert 28.05.2014
Hallo pixel24,
hatte hier dazu schon mal ein ähnliches VBS-Script gespostet, das den Servernamen im Template durch einen anderen ersetzt. Habe es dir nun so angepasst das es das verknüpfte Template auf die Normal.dotm zurücksetzt. Das Script durchläuft einen Ordner rekursiv und ändert alle Word-Dokumente mit den Endungen *.doc / *.docx / *.docm. Ob rekursiv oder nicht lässt sich mit dem zweiten Parameter in Zeile 14 ändern (True in False ändern)
In Zeile 2 muss der Pfad zum Root-Ordner der durchsucht werden soll angegeben werden, in Zeile 4 ein Pfad zu einer Log-Datei die im Fehlerfall die betreffenden Dokumente auflistet, und in Zeile 6 der Servername welcher im Template vorkommen muss damit die Vorlage zurückgesetzt wird.
VBS-Script
01.
'Pfad zu den Dokumenten
02.
Const strPathDocs = "E:\docs"
03.
'Logfile für eventuell auftretende Fehler
04.
Const strPathLogfile = "E:\docs\logfile.txt"
05.
'Alter Servername 
06.
strOldServer = "\\192.168.3.1" 
07.

08.
Set fso = Wscript.CreateObject("Scripting.Filesystemobject")
09.
Set objWord = WScript.CreateObject("Word.Application")
10.
'Wenn das ganze unsichtbar ablaufen soll nächste Zeile auf false setzen
11.
objWord.Visible = True
12.
objWord.DisplayAlerts = 0
13.
'Im Ordner Rekursiv alle Word-Dokumente verarbeiten
14.
parseFolders fso.GetFolder(strPathDocs), True
15.
objWord.DisplayAlerts = -1
16.
objWord.Quit True
17.
Set fso = Nothing
18.
Set objWord = Nothing
19.

20.
Function parseFolders(fldr, boolRecursion)
21.
    
22.
    For Each file In fldr.Files
23.
   		'Verarbeite nur Dateien mit den Endungen *.doc, *.docx, *.docm 
24.
        If LCase(Right(file.Name, 3)) = "doc" Or LCase(Right(file.Name, 4)) = "docx" Or LCase(Right(file.Name, 4)) = "docm" Then
25.
            On Error Resume Next
26.
            Set objDoc = objWord.Documents.Open(file.Path)
27.
            If Err.Number <> 0 Then
28.
            	Set objLog = fso.OpenTextFile(strPathLogfile,3,True)
29.
            	objLog.WriteLine("Fehler beim öffnen der Datei: -> " & file.Path)
30.
            	objLog.Close
31.
            Else
32.
		Set dlgTemplate = objWord.Dialogs(87)
33.
		If Instr(1,dlgTemplate.Template, strOldServer,1) then
34.
                        objDoc.RemoveDocumentInformation (9)
35.
			objDoc.Save
36.
			objDoc.Close True
37.
		else
38.
			objDoc.Close False
39.
		End if
40.
            End If
41.
        End If
42.
    Next
43.
    
44.
    If boolRecursion Then
45.
		For Each subFolder in fldr.SubFolders
46.
			parseFolders subFolder, True
47.
		Next
48.
	End If
49.
End Function
Grüße Uwe
Bitte warten ..
Mitglied: pixel24
18.01.2014 um 10:34 Uhr
ich bin absolut nicht bewandert in VBA/Makros. Das Skript was ich von der MS-Seite habe fänt mit 'Sub Test' an und endet mit 'End Sub'. Dass scheint der Name des Makros zu sein. Bei deinem Skript ist es 'Function. Bau ich da ein Sub drum herum?
Bitte warten ..
Mitglied: colinardo
LÖSUNG 18.01.2014, aktualisiert 27.01.2014
Zitat von pixel24:

ich bin absolut nicht bewandert in VBA/Makros. Das Skript was ich von der MS-Seite habe fänt mit 'Sub Test' an und
endet mit 'End Sub'. Dass scheint der Name des Makros zu sein. Bei deinem Skript ist es 'Function. Bau ich da ein
Sub drum herum?
Das ist ein VBS-Script, welches du nicht in ein Word-VBA-Projekt einbaust sondern in eine Textdatei mit der Endung *.vbs einfügst und es dann per Doppelklick startest.

Grüße Uwe
Bitte warten ..
Mitglied: pixel24
22.01.2014 um 07:18 Uhr
Hallo,

habe also die Datei als test.vbs gespeichert und die Die Pfade angepasst. Wenn ich es ausführe wird auch das Dokument (zum testen nur eines) welches im Pfad liegt geöffnet und anschließend wieder geschlossen.

Wenn ich jedoch anschließend versuche dieses Dokument ganz normal zu öffnen erscheint wieder:

Kontaktaufnahme: \\192.168.3.1\daten\WBS\Personal\Arbeitsvertraege EUR\die_alte_vorlage.dotx

also ist die Vorlage nach wie vor enthalten. Woran kann das liegen?

Viele Grüße
pixel24
Bitte warten ..
Mitglied: colinardo
LÖSUNG 22.01.2014, aktualisiert 27.01.2014
poste mal ein Link zur Datei, du kannst ja alles private daraus entfernen ...
Bitte warten ..
Mitglied: colinardo
LÖSUNG 25.01.2014, aktualisiert 27.01.2014
OK, zuerst mal solltet Ihr sicherstellen das der alte Serverpfad vorübergehend wieder erreichbar ist damit der Batchvorgang schneller vonstatten geht und Word nicht unendlich auf die verknüpfte Vorlage wartet.
Habe den obigen Code geringfügig angepasst, sollte damit jetzt einwandfrei laufen; habe es mit deinem Dokument positiv getestet.

Grüße Uwe
Bitte warten ..
Mitglied: pixel24
25.01.2014 um 11:43 Uhr
Den alten Server-Pfad zur Verfügung stellen wäre nur schwer möglich da das neue Netz in einem ganz anderen Bereich (Netmask) liegt. Die Zeit wäre nicht so tragisch da ich es in Häppchen jeweils über's Wochenende laufen lassen würde.

Klappt es trotzdem, auch wenn der alte Pfad nicht erreichbar ist?
Bitte warten ..
Mitglied: colinardo
LÖSUNG 25.01.2014, aktualisiert 27.01.2014
Zitat von pixel24:
Den alten Server-Pfad zur Verfügung stellen wäre nur schwer möglich da das neue Netz in einem ganz anderen Bereich
(Netmask) liegt.
Klappt es trotzdem, auch wenn der alte Pfad nicht erreichbar ist?
ja, aber eben langsamer.
Du kannst doch via Hosts-Datei den Pfad entsprechend auf einen anderen Server umbiegen wo die alten Vorlagen liegen, das ist doch kein Problem ....

z.B. so auf die 192.168.1.3 auf die 10.10.20.4 umbiegen:
Hosts-File
10.10.20.4    192.168.1.3
Bitte warten ..
Mitglied: pixel24
27.01.2014 um 09:43 Uhr
ok, dass ich die Hosts-Datei auch zur IP-IP - Suflösung nutzen kann wusste ich nicht. Danke , für den Hinweis. Wieder etwas gelernt.

Zum Skript. Ich fehlerfrei durch gelaufen.

VIELEN HERZLICHEN DANK!!
Bitte warten ..
Mitglied: frankmann2
30.03.2015 um 13:49 Uhr
Vielen Dank, hatte das gleiche Problem - HATTE
Gruß
Frank
Bitte warten ..
Mitglied: colinardo
30.03.2015, aktualisiert um 14:01 Uhr
Zitat von frankmann2:
Vielen Dank, hatte das gleiche Problem - HATTE
Hallo Frank,
falls es dich noch interessiert, ich hatte dazu auch eine Powershell-Version entwickelt die auch ohne das einzelne Öffnen der Dateien auskommt.
Pfad der Dokumentenvorlage mit einem Powershell Script ändern?

Grüße Uwe
Bitte warten ..
Mitglied: frankmann2
30.03.2015 um 15:44 Uhr
Hallo Uwe,
werde ich morgen ausproblieren.Hast mir sehr geholfen, Danke.

Grüße Frank
Bitte warten ..
Ähnliche Inhalte
VB for Applications

Excel-VBA nach Word-VBA übersetzen (V. 2010)

gelöst Frage von spinnifexVB for Applications2 Kommentare

Hallo Admins, wie kann ich folgendes XL-Makro nach Word übersetzen, wobei die Zelladresse "A1" als Textmarke "Anzahl" angesprochen werden ...

VB for Applications

VBA in Word 2010 bzw 2013(16)

gelöst Frage von ahstaxVB for Applications11 Kommentare

Hallo, wir haben hier folgendes Word-Makro: Es wird bei der Abarbeitung eines Dokuments durch eine Bürosoftware ausgeführt (überprüft!). Anschließend ...

Microsoft Office

VBA Word IBAN zerschneiden

gelöst Frage von InSpeeMicrosoft Office8 Kommentare

Hallo, wie kann ich mit VBA eine IBAN in 4er Schritten zerschneiden, sodass die IBAN so aussieht: DExx xxxx ...

Microsoft Office

Word 2010 Vorlage

gelöst Frage von veniplexMicrosoft Office6 Kommentare

Hallo zusammen, ich verzweifel gerade Ich möchte in Word 2010 eine neue Vorlage erstellen, der Witz ist aber: Sobald ...

Neue Wissensbeiträge
Windows 10

"Windows 10 Pro V1903: Gruppenrichtlinie "Telemetrie zulassen" aktivierbar?"

Tipp von Snowbird vor 8 StundenWindows 101 Kommentar

Sicherheits-Tools

TrendMicro Worry-Free Business Security 10.0 SP1 - Jetzt in Deutsch verfügbar! (Windows 10 1903 Support)

Tipp von TrinXx vor 1 TagSicherheits-Tools1 Kommentar

Moin! Nach wochenlangem Warten wird Trend Micro das SP1 für WFBS 10 voraussichtlich am 26.08.19 veröffentlichen. Ich habe das ...

Hyper-V
Setup VM W2016 startet nicht in Hyper-V 2016
Erfahrungsbericht von keine-ahnung vor 3 TagenHyper-V7 Kommentare

Moin, sitze gerade über meinem neuen Server und versuche, die VM auf den Host zu prügeln. Jetzt wollte ich ...

Server-Hardware

HPE Proliant ML350P Gen8 Probleme mit Zugriff auf Raid-Volumes

Erfahrungsbericht von goscho vor 3 TagenServer-Hardware1 Kommentar

Hallo Leute, das Problemgerät: HPE ML350P G8 Windows Server 2012R2 HyperV-Host 8 x 300 GB 10K SAS HDD (1 ...

Heiß diskutierte Inhalte
Server
Ein Server ins Haus stellen. Was brauche ich dafür?
Frage von JoschiTomServer15 Kommentare

Hallo Community, ich spiele mit dem Gedanken eine Server mir zu holen. Was brauche ich dafür? Und wie sind ...

Windows Server
Ist es möglich, eine deutsche W2016 Installation mit einer UK-Lizenz zu aktivieren?
gelöst Frage von keine-ahnungWindows Server10 Kommentare

Moin at all, ist ja noch Freitag. Ich habe hier noch zwei UK OEM W2016 Standard Pakete rumfliegen Muss ...

LAN, WAN, Wireless
Mikrotik Gast-Wlan keine Verbindung zum Internet?
Frage von dirkschwarzLAN, WAN, Wireless10 Kommentare

Guten Morgen, habe ein wahrscheinlich einfaches Problem, bei dem ich aber nicht wirklich weiter komme Ich möchte ein Gast-Wlan ...

Batch & Shell
Mittels SED Text ersetzen in Anführungszeichen
gelöst Frage von nekronBatch & Shell9 Kommentare

Moin … bin nicht wirklich der SED/regex Mensch, vielleicht kann mir jemand auf die Schnelle Helfen :) ich habe ...