18. januar 2013 - 15:51
Der er
1 kommentar
Åben *.doc(x) m.fl. filer og gem som text fil (for 15.000 + filer)
Hej
Jeg har brug for at konvertere rigtig mange filer til simple tekstfiler. Problemet er, at de stammer alle mulige steder fra, og formentlig er oprettet i mange forskellige programmer (de sidste 20 år). De har alle på et eller andet tidspunkt fået en *.doc endelse, men er altså ikke alle doc filer fra begyndelsen.
Jeg har forsøgt mig med en Makro, der henter stien på hver fil i en kolonne i et excelark, åbner den med word.application og gemmer i txt.
Det tager bare riiiiigtig lang tid - 10 sek pr fil - sikkert fordi nogle af filerne konverteres først.
Findes der en smutvej? Et andet program, en anden metode?, der kan speede det lidt op, mon?
Anyone?
18. januar 2013 - 15:59
#1
Sub fromWrd()
Application.ScreenUpdating = False
Dim i As Long, h As Long, j As Long, l As Long
j = 1
k = 17547
Dim wrdApp As New Word.Application
Set wrdApp = CreateObject("Word.Application")
Dim wrdDoc As Word.Document
'Dim FSO As New Scripting.FileSystemObject
'Set FSO = CreateObject("Scripting.FileSystemObject")
Dim dok As String
Dim sti As String
Dim tæller As Integer
Dim Sagstype As String
Dim Filtype1 As String, Filtype2 As String, Filnr As String
Dim DATO As Date
wrdApp.AutomationSecurity = msoAutomationSecurityLow
Application.DisplayAlerts = True
wrdApp.Visible = false
For i = j To k
On Error Resume Next
Application.StatusBar = "dokument " & i & " af " & k
sti = Range("A" & i) & "\"
tæller = Range("B" & i)
Sagstype = Range("C" & i)
Filnr = Range("D" & i)
Filtype1 = Range("E" & i)
Filtype2 = ".txt"
If Dir("C:\Documents and Settings\Jacob\Dokumenter\Sagerne\" & j & "-" & k, vbDirectory) = "" Then
MkDir "C:\Documents and Settings\Jacob\Dokumenter\Sagerne\" & j & "-" & k
End If
If Dir("C:\Documents and Settings\Jacob\Dokumenter\Sagerne\" & j & "-" & k & "\" & Filnr, vbDirectory) = "" Then
MkDir "C:\Documents and Settings\Jacob\Dokumenter\Sagerne\" & j & "-" & k & "\" & Filnr
Else
End If
dok = sti & tæller & " - " & Sagstype & " - " & Filnr & Filtype1
'Range("F" & i) = FSO.getfile(dok).datelastmodified
Set wrdDoc = wrdApp.Documents.Open(Filename:=dok, AddToRecentFiles:=False)
wrdDoc.SaveAs2 Filename:="C:\Documents and Settings\Jacob\Dokumenter\Sagerne\" & j & "-" & k & "\" & Filnr & "\" _
& tæller & " - " & Sagstype & Filtype2, FileFormat:=wdFormatText, AddToRecentFiles:=False
wrdDoc.Close
Set wrdDoc = Nothing
dok = ""
Next i
Set wrdApp = Nothing
wrdApp.Quit
'ActiveWorkbook.Save
Application.ScreenUpdating = True
End Sub