Doc Dokumente leicht in .docx umwandeln
Hallo zusammen,
im Zuge einer Sicherheitsanpassung unserer Firewall, müssen alle Office Dokumente der Mitarbeiter künftig im DOCX Format abgespeichert werden.
Ab Office 2007 werden diese das ja standardmäßig, jedoch hatten wir vor geraumer Zeit noch Office 2003 im Einsatz, welches dies nicht konnte...somit haben wir viele alte Dateien im DOC Format.
Die User sollen nun (da es sich um X-viele Dateien handelt), selbständig die Dateien, die nach Extern versendet werden, konvertieren.
Derzeit haben wir Office 2010 im Einsatz. Es gibt ja die tolle Möglichkeit, in der Datei unter "Datei" -> "Konvertieren" direkt eine DOCX-Datei aus der DOC-Datei zu erstellen.
Unter Excel klappt das perfekt! Man klickt auf "Konvertieren", kann die Datei schließen und automatisch wird die alte DOC-Datei gelöscht und die Datei wird als DOCX-Datei gespeichert...ein Traum!
Natürlich wäre es scheinbar zu einfach und bequem, wenn es ebenfalls problemlos für Word und Power Point gelten würde...
Bei den beiden Programmen hat man zwar auch den Button "Konvertieren", jedoch muss man dort nach der Umwandlung ein "Speichern unter" Dialogfenster bestätigen und die alte DOC-Datei nachher von Hand löschen...
Sicher ist dies machbar, jedoch reden wir von teils sehr unerfahrenen Usern, denen ich jeden Klick ersparen möchte...außerdem haben einige Kollegen vermutlich sehr viele DOC-Dateien, da machen ein paar Klicks pro Dokument eine Menge aus...
Frage:
Muss man unter Word und Power Point etwas einstellen, damit es genauso reibungslos wie bei Excel funktioniert?
Warum ist es nicht möglich bei allen drei Office Produkten den gleichen Ablauf zu haben *seufzer Richtung Microsoft*
Ich suche parallel schon überall, aber scheinbar hat außer mir keiner das Problem oder es stört keinen so wie mich.
Vielen Dank im Voraus für Tipps!
im Zuge einer Sicherheitsanpassung unserer Firewall, müssen alle Office Dokumente der Mitarbeiter künftig im DOCX Format abgespeichert werden.
Ab Office 2007 werden diese das ja standardmäßig, jedoch hatten wir vor geraumer Zeit noch Office 2003 im Einsatz, welches dies nicht konnte...somit haben wir viele alte Dateien im DOC Format.
Die User sollen nun (da es sich um X-viele Dateien handelt), selbständig die Dateien, die nach Extern versendet werden, konvertieren.
Derzeit haben wir Office 2010 im Einsatz. Es gibt ja die tolle Möglichkeit, in der Datei unter "Datei" -> "Konvertieren" direkt eine DOCX-Datei aus der DOC-Datei zu erstellen.
Unter Excel klappt das perfekt! Man klickt auf "Konvertieren", kann die Datei schließen und automatisch wird die alte DOC-Datei gelöscht und die Datei wird als DOCX-Datei gespeichert...ein Traum!
Natürlich wäre es scheinbar zu einfach und bequem, wenn es ebenfalls problemlos für Word und Power Point gelten würde...
Bei den beiden Programmen hat man zwar auch den Button "Konvertieren", jedoch muss man dort nach der Umwandlung ein "Speichern unter" Dialogfenster bestätigen und die alte DOC-Datei nachher von Hand löschen...
Sicher ist dies machbar, jedoch reden wir von teils sehr unerfahrenen Usern, denen ich jeden Klick ersparen möchte...außerdem haben einige Kollegen vermutlich sehr viele DOC-Dateien, da machen ein paar Klicks pro Dokument eine Menge aus...
Frage:
Muss man unter Word und Power Point etwas einstellen, damit es genauso reibungslos wie bei Excel funktioniert?
Warum ist es nicht möglich bei allen drei Office Produkten den gleichen Ablauf zu haben *seufzer Richtung Microsoft*
Ich suche parallel schon überall, aber scheinbar hat außer mir keiner das Problem oder es stört keinen so wie mich.
Vielen Dank im Voraus für Tipps!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 365694
Url: https://administrator.de/contentid/365694
Ausgedruckt am: 26.11.2024 um 06:11 Uhr
5 Kommentare
Neuester Kommentar
Wie wäre es mit einem Macro?
Ich habe zwei Alternativen eingebaut. Entscheide Dich, welche Du nehmen willst und kommentiere die andere vollständig aus oder entferne den entsprechenden Block.
Ich habe das Macro auf die Schnelle zusammengebaut und NICHT getestet!
Also teste in einer gesicherten Umgebung!
Wenn es funktioniert, kannst Du das Macro als Schaltfläche in WORD in einer eigenen Leiste einrichten.
So mache ich das bei uns auch.
Sub DOCXspeichernAlteDOCloeschen()
ActiveDocument.SaveAs FileName:=sDocName, _
FileFormat:=wdFormatDocument
sFileToDelete = sDocName
'***Alternative 1***
sDocName = Left(sOrigName, Len(sOrigName) - 4)
sDocName = sDocName & ".docx"
ActiveDocument.SaveAs FileName:=sDocName, _
FileFormat:=wdFormatDocument
'***Alternative 2***
sNameParts = Split(sOrigName, ".")
sDocName = sNameParts(0) & ".docx"
ActiveDocument.SaveAs FileName:=sDocName, _
FileFormat:=wdFormatDocument
'*** alte Datei löschen ***
If FileExists(sFileToDelete) Then 'See above
' First remove readonly attribute, if set
SetAttr sFileToDelete, vbNormal
' Then delete the file
Kill sFileToDelete
End Sub
Ich habe zwei Alternativen eingebaut. Entscheide Dich, welche Du nehmen willst und kommentiere die andere vollständig aus oder entferne den entsprechenden Block.
Ich habe das Macro auf die Schnelle zusammengebaut und NICHT getestet!
Also teste in einer gesicherten Umgebung!
Wenn es funktioniert, kannst Du das Macro als Schaltfläche in WORD in einer eigenen Leiste einrichten.
So mache ich das bei uns auch.
Moin,
hätte es auch als Makro/ Batch umgesetzt:
https://www.google.de/search?q=word+batch+convert+doc+to+docx
Hier findest du einiges dazu...
Gruß
em-pie
hätte es auch als Makro/ Batch umgesetzt:
https://www.google.de/search?q=word+batch+convert+doc+to+docx
Hier findest du einiges dazu...
Gruß
em-pie
Servus @Becker1234 ,
ich mach das immer mit meinem Powershell-Skript für alte Office-Dokumente:
Das Skript verarbeitet die folgende alten Office-Dateierweiterungen für Excel, Word und Powerpoint
und wandelt sie in Ihre entsprechenden neuen Verwandten um (unter Beachtung ob mit oder ohne Makroprojekt). Ein installiertes Office ist Voraussetzung.
Als Parameter anzugeben sind Quellordner (wird rekursiv durchsucht) und ein Zielordner in dem die konvertierten Dateien mit der gleichen Ordnerstruktur wie in der Quelle abgelegt werden.
Beispiel:
Viel Spaß.
Grüße Uwe
-edit- 31.01.2019 - Fehlerkorrektur damit Kompatibilitätsmodus nach der Konvertierung nicht mehr besteht.
ich mach das immer mit meinem Powershell-Skript für alte Office-Dokumente:
Das Skript verarbeitet die folgende alten Office-Dateierweiterungen für Excel, Word und Powerpoint
'*.xls','*.xlt','*.doc','*.dot','*.ppt','*.pot','*.pps'
und wandelt sie in Ihre entsprechenden neuen Verwandten um (unter Beachtung ob mit oder ohne Makroprojekt). Ein installiertes Office ist Voraussetzung.
Als Parameter anzugeben sind Quellordner (wird rekursiv durchsucht) und ein Zielordner in dem die konvertierten Dateien mit der gleichen Ordnerstruktur wie in der Quelle abgelegt werden.
Beispiel:
.\OfficeDocumentConverter.ps1 "D:\Dokumente" "D:\Konvertiert"
Viel Spaß.
<#
Office Document-Format Converter
#>
param(
[Parameter(Mandatory=$true)][ValidateNotNullOrEmpty()][string]$foldersource,
[Parameter(Mandatory=$true)][ValidateNotNullOrEmpty()][string]$foldertarget
)
if ($PSVersionTable.PSVersion.Major -lt 3){write-host "ERROR: Minimum Powershell Version 3.0 is required!" -F Yellow; return}
# ==== GLOBAL VARS ====
$valid_extensions = '*.xls','*.xlt','*.doc','*.dot','*.ppt','*.pot','*.pps'
$mpar = [System.Reflection.Missing]::Value
# =====================
# Create output directory
if(!(Test-Path $foldertarget)){md $foldertarget -Force | out-null}
# enum all office files in source with recursive search
$files = gci $foldersource -Recurse -Force -File -Include $valid_extensions
$files_excel = $files | ?{$_.Extension -match '\.(xls|xlt)$'}
$files_word = $files | ?{$_.Extension -match '\.(doc|dot)$'}
$files_powerpoint = $files | ?{$_.Extension -match '\.(ppt|pot|pps)$'}
# ====== EXCEL ========
if ($files_excel){
write-host "Processing EXCEL Workbooks:" -F White -B Green
# Prepare Excel for conversion
$xl = New-Object -Com Excel.Application
$xl.DisplayAlerts = $false
$xl.Screenupdating = $false
$xl.Visible = $false
# For each file
foreach($file in $files_excel){
write-host "Converting '$($file.Fullname)' ... " -NoNewline -F Green
# generate and create targetfolder for file
$targetfolder = $file.Directory.Fullname -replace "^$([regex]::escape($foldersource))",$foldertarget
if(!(Test-Path $targetfolder)){md $targetfolder -Force | out-null}
try{
$wb = $xl.Workbooks.Open($file.Fullname,$false,$true)
# file has macroproject ?
$macroproject = $wb.HasVBProject
$targetformat = '.xlsx'
$format = 51
# determine file extension and set format number
switch($file.Extension){
'.xls' {
$targetformat = @{$true='.xlsm';$false='.xlsx'}[$macroproject]
$format = @{$true=52;$false=51}[($targetformat -like '*m')]
}
'.xlt' {
$targetformat = @{$true='.xltm';$false='.xltx'}[$macroproject]
$format = @{$true=53;$false=54}[($targetformat -like '*tm')]
}
}
# new filename in targetdirecory
$targetfile = Join-Path $targetfolder ($file.Basename + $targetformat)
# Save file as new format
$wb.SaveAs($targetfile,$format) | out-null
if (Test-Path $targetfile){write-host 'OK.' -F Green}
}catch{
# Error occured
write-error "Error converting file '$($file.Fullname)': $($_.Exception.Message)"
}finally{
# close workbook
if ($wb){$wb.Close($false) | out-null}
}
}
# Quit Excel and tidy up
$xl.DisplayAlerts = $true
$xl.Screenupdating = $true
$xl.Quit() | out-null
[System.Runtime.InteropServices.Marshal]::ReleaseComObject($xl) | out-null
}
# ====== WORD ========
if ($files_word){
write-host "Processing WORD documents:" -F White -B Green
# Prepare Word for conversion
$word = New-Object -Com Word.Application
$word.DisplayAlerts = 0
$word.Screenupdating = $false
$word.Visible = $false
# For each file
foreach($file in $files_word){
write-host "Converting '$($file.Fullname)' ... " -NoNewline -F Green
# generate and create targetfolder for file
$targetfolder = $file.Directory.Fullname -replace "^$([regex]::escape($foldersource))",$foldertarget
if(!(Test-Path $targetfolder)){md $targetfolder -Force | out-null}
try{
$doc = $word.Documents.Open($file.Fullname,$false,$true)
# file has macroproject ?
$macroproject = $doc.HasVBProject
$targetformat = '.docx'
$format = 12
# determine file extension and set format number
switch($file.Extension){
'.doc' {
$targetformat = @{$true='.docm';$false='.docx'}[$macroproject]
$format = @{$true=13;$false=12}[($targetformat -like '*m')]
}
'.dot' {
$targetformat = @{$true='.dotm';$false='.dotx'}[$macroproject]
$format = @{$true=15;$false=14}[($targetformat -like '*tm')]
}
}
# new filename in targetdirecory
$targetfile = Join-Path $targetfolder ($file.Basename + $targetformat)
# Convert to new format and enable all features
$doc.Convert()
# Save file as new format
$doc.SaveAs2([ref][system.object]$targetfile,[ref]$format)
if (Test-Path $targetfile){write-host 'OK.' -F Green}
}catch{
# Error occured
write-error "Error converting file '$($file.Fullname)': $($_.Exception.Message)"
}finally{
# close document
if ($doc -ne $null){$doc.Close($false)}
}
}
# Quit Word and tidy up
$word.DisplayAlerts = -1
$word.Screenupdating = $true
$word.Quit() | out-null
[System.Runtime.InteropServices.Marshal]::ReleaseComObject($word) | out-null
}
# ====== POWERPOINT ========
if ($files_powerpoint){
write-host "Processing POWERPOINT presentations:" -F White -B Green
# Prepare Word for conversion
$pp = New-Object -Com Powerpoint.Application
$pp.DisplayAlerts = 1
# For each file
foreach($file in $files_powerpoint){
write-host "Converting '$($file.Fullname)' ... " -NoNewline -F Green
# generate and create targetfolder for file
$targetfolder = $file.Directory.Fullname -replace "^$([regex]::escape($foldersource))",$foldertarget
if(!(Test-Path $targetfolder)){md $targetfolder -Force | out-null}
try{
$presentation = $pp.Presentations.Open($file.Fullname,$true,$mpar,0)
# file has macroproject ?
$macroproject = $presentation.HasVBProject
$targetformat = '.pptx'
$format = 12
# determine file extension and set format number
switch($file.Extension){
'.ppt' {
$targetformat = @{$true='.pptm';$false='.pptx'}[$macroproject]
$format = @{$true=25;$false=24}[($targetformat -like '*m')]
}
'.pot' {
$targetformat = @{$true='.potm';$false='.potx'}[$macroproject]
$format = @{$true=27;$false=26}[($targetformat -like '*tm')]
}
'.pps' {
$targetformat = @{$true='.ppsm';$false='.ppsx'}[$macroproject]
$format = @{$true=29;$false=28}[($targetformat -like '*sm')]
}
}
# new filename in targetdirecory
$targetfile = Join-Path $targetfolder ($file.Basename + $targetformat)
# Save file as new format
$presentation.SaveAs([ref][system.object]$targetfile,[ref]$format)
if (Test-Path $targetfile){write-host 'OK.' -F Green}
}catch{
# Error occured
write-error "Error converting file '$($file.Fullname)': $($_.Exception.Message)"
}finally{
# close presentation
if ($presentation){$presentation.Close() | out-null}
}
}
# Quit Powerpoint and tidy up
$pp.DisplayAlerts = 2
$pp.Quit() | out-null
[System.Runtime.InteropServices.Marshal]::ReleaseComObject($pp) | out-null
}
-edit- 31.01.2019 - Fehlerkorrektur damit Kompatibilitätsmodus nach der Konvertierung nicht mehr besteht.
Hallo Uwe, super Script es geht prima.
Ich habe da noch ne Frage zum Kopiervorgang in die Neue Struktur, was mus ich anpassen damit auch schon konvertierte Dateien sich in der neuen Struktur kopieren.
Des weiteren möchte ich auch in den neuen Dateien den Kompatibilitätsmodus bereinigen.
Geht das ??
Gruß
Norbert
Ich habe da noch ne Frage zum Kopiervorgang in die Neue Struktur, was mus ich anpassen damit auch schon konvertierte Dateien sich in der neuen Struktur kopieren.
Des weiteren möchte ich auch in den neuen Dateien den Kompatibilitätsmodus bereinigen.
Geht das ??
Gruß
Norbert