Vbs und Normal.dot
vbs und Word / Normal.dot bearbeiten - wie Schreibschutz aufheben
Hallo Allerseits,
nach langer erfolgloser Suche im Internet nach eine Lösung für mein Problem stelle ich nun doch selber die Frage rein:
Ich habe ein vb-Skript, welches die lokale Normal.dot bearbeiten, bzw. die Fußzeile ändern soll. Das läuft inzwischen auch bis zum Speichervorgang. Es ist nicht möglich die Änderungen zu speichern da die Normal.dot immer schreibgeschützt geöffnet wird. Auch der Versuch über das Skript die Dot unter anderem Namen zu speichern und nach dem Schließen von Word die ursprüngliche Vorlage durch die neue zu ersetzen gibt die Meldung "Erlaubnis verweigert" raus.
Kann mir hier jemand helfen und hat einen Tipp, wie ich das umgehen kann. Gibt es eventuell eine Möglichkeit die Vorlage mit anderm Befehl zu öffnen un diese bearbeiten zu können? Momentan öffne ich sie folgendermaßen:
Set wdDoc = wdAppl.Documents.Open ("C:\Dokumente und Einstellungen\riewe\Anwendungsdaten\Microsoft\Vorlagen\Normal.dot", false, false)
Adminrechte sind vorhanden.
Vielen Dank schon mal für eure Hilfe!
Gruß Gweny
Hallo Allerseits,
nach langer erfolgloser Suche im Internet nach eine Lösung für mein Problem stelle ich nun doch selber die Frage rein:
Ich habe ein vb-Skript, welches die lokale Normal.dot bearbeiten, bzw. die Fußzeile ändern soll. Das läuft inzwischen auch bis zum Speichervorgang. Es ist nicht möglich die Änderungen zu speichern da die Normal.dot immer schreibgeschützt geöffnet wird. Auch der Versuch über das Skript die Dot unter anderem Namen zu speichern und nach dem Schließen von Word die ursprüngliche Vorlage durch die neue zu ersetzen gibt die Meldung "Erlaubnis verweigert" raus.
Kann mir hier jemand helfen und hat einen Tipp, wie ich das umgehen kann. Gibt es eventuell eine Möglichkeit die Vorlage mit anderm Befehl zu öffnen un diese bearbeiten zu können? Momentan öffne ich sie folgendermaßen:
Set wdDoc = wdAppl.Documents.Open ("C:\Dokumente und Einstellungen\riewe\Anwendungsdaten\Microsoft\Vorlagen\Normal.dot", false, false)
Adminrechte sind vorhanden.
Vielen Dank schon mal für eure Hilfe!
Gruß Gweny
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 189315
Url: https://administrator.de/contentid/189315
Ausgedruckt am: 31.10.2024 um 10:10 Uhr
7 Kommentare
Neuester Kommentar
Moin,
hatte ich vor langer Zeit mal im Inet gefunden. Die Dot wird nicht sichtbar geöffnet.
Vielleicht geht es bei Dir....
bye
Karo
hatte ich vor langer Zeit mal im Inet gefunden. Die Dot wird nicht sichtbar geöffnet.
Vielleicht geht es bei Dir....
Dim oDot As Document
Set oDot = Documents.Open(strUserTemplateDir & Application.PathSeparator & pcNormal, Visible:=False)
With oDot
.PageSetup.LeftMargin = InchesToPoints(1)
.PageSetup.RightMargin = InchesToPoints(1)
.Styles(wdStyleNormal).Font.Name = "Times New Roman"
.Styles(wdStyleNormal).Font.Size = 12
.Save
.Close
End With
bye
Karo
Verwende mal den unten aufgeführten Befehl zum speichern deiner DOT-Datei
ActiveDocument.SaveAs FileName:= [String], FileFormat:=[Integer], AddToRecentFiles:=False...
FileName: Der vollständige Pfad samt Dateityperweiterung
FileFormat: Ist ein Integerwert zwischen 1 und 17, musste mal auf der MS-Seite gucken wie dieser für DOT aussieht.
ActiveDocument.SaveAs FileName:= [String], FileFormat:=[Integer], AddToRecentFiles:=False...
FileName: Der vollständige Pfad samt Dateityperweiterung
FileFormat: Ist ein Integerwert zwischen 1 und 17, musste mal auf der MS-Seite gucken wie dieser für DOT aussieht.
Hallo GwenyA!
Versuchs mal so:
Gruß Dieter
Versuchs mal so:
Const wdOpenFormatTemplate = 2
Dim oWord, oDoc, sPath
Set oWord = CreateObject("Word.Application")
sPath = oWord.Templates("Normal.Dot").FullName
oWord.Documents.Open sPath,,,,,,,,, wdOpenFormatTemplate
Set oDoc = oWord.ActiveDocument
'......
oDoc.Close True 'Speichern und Schließen
oWord.Quit
Gruß Dieter
Hallo Gweny!
Also, bei mir funktionierts per VBS (Win7) auch mit der Normal.dot
Hier ein (bastla)-Beispiel für die Berechnung einer Zeitdifferenz zwischen zwei Zeitangaben:
Ausgabe = Tage Stunden Minuten Sekunden
Die VBS-Datei wird im Temp-Verzeichnis gespeichert und am Ende wieder gelöscht.
Batch-Steuerzeichen z.B. (&) müssen im VBS-Code mit (^) Escaped werden.
Gruß Dieter
Also, bei mir funktionierts per VBS (Win7) auch mit der Normal.dot
Hier ein (bastla)-Beispiel für die Berechnung einer Zeitdifferenz zwischen zwei Zeitangaben:
@echo off & setlocal
set "Von=01.01.2012-13:22:45"
set "Bis=10.08.2012-19:24:27"
set G=%temp%\GetTimeDiff.vbs
>%G% echo D=CDate(Replace(WScript.Arguments(1),"-"," "))-CDate(Replace(WScript.Arguments(0),"-"," ")):WScript.Echo Int(D)^&" "^&Hour(D)^&" "^&Minute(D)^&" "^&Second(D)
for /f "tokens=1-4" %%a in ('cscript //nologo %G% "%Von%" "%Bis%"') do echo %%a Tage %%b Stunden %%c Minuten %%d Sekunden
Del %G%
Die VBS-Datei wird im Temp-Verzeichnis gespeichert und am Ende wieder gelöscht.
Batch-Steuerzeichen z.B. (&) müssen im VBS-Code mit (^) Escaped werden.
Gruß Dieter