![]() |
|
#1
|
|||
|
|||
|
Quote:
Code:
Sub ConvertFile()
Application.ScreenUpdating = False
Dim wdApp As New Word.Application
Dim wdDoc As Word.Document
Dim strfolder As String, strFile As String
Dim sDocName As String, fnlfolder As String
MsgBox "Select the Destination Folder", vbInformation
fnlfolder = GetFolder
MsgBox "Select the Folder Containing the .dotx Files You Need to Convert", vbInformation
If strfolder = "" Then
With Application.FileDialog(msoFileDialogFilePicker)
.AllowMultiSelect = True
If .Show = -1 Then
Set wdDocSrc = ActiveDocument
Else
MsgBox "No Source document chosen. Exiting", vbExclamation
Exit Sub
End If
End With
strFile = Dir(strfolder & "\*.dotx", vbNormal)
wdApp.DisplayAlerts = False
While strFile <> ""
Set wdDoc = wdApp.Documents.Open(FileName:=strfolder & "\" & strFile, AddToRecentFiles:=False, Visible:=False, ReadOnly:=True)
With wdDoc
sDocName = Left(strFile, Len(strFile) - 5)
sDocName = sDocName & ".docx"
wdDoc.SaveAs2 FileName:=fnlfolder & "\" & sDocName, FileFormat:=wdFormatDocumentDefault, AddToRecentFiles:=False
wdDoc.Close savechanges:=False
strFile = Dir()
End With
Wend
wdApp.Quit
Set wdDoc = Nothing: Set wdApp = Nothing: Set WkSht = Nothing
Application.ScreenUpdating = True
MsgBox ("Operation Complete")
End If
End Sub
Function GetFolder() As String
Dim oFolder As Object
GetFolder = ""
Set oFolder = CreateObject("Shell.Application").BrowseForFolder(0, "Choose a folder", 0)
If (Not oFolder Is Nothing) Then GetFolder = oFolder.Items.Item.Path
Set oFolder = Nothing
End Function
Last edited by macropod; 05-04-2020 at 05:35 PM. Reason: Split from: https://www.msofficeforums.com/word-vba/20699-word-2003-word-2010-conversion.html |
|
#2
|
||||
|
||||
|
If all you're doing is converting one template at a time, you're wasting your time trying to do it with a macro. Simply double-click on the template, then use Save As to save the resulting document wherever you like. Otherwise, the code would have to be entirely different from what you've cobbled together.
__________________
Cheers, Paul Edstein [Fmr MS MVP - Word] |
|
#3
|
|||
|
|||
|
It would be more like 50 files out of a folder that has around 300. My idea was to keep the user out of the folder so they don’t accidentally select cut instead of copy when they’re grabbing the files they need. Plus it would be a one stop thing where they can select the files they need, convert then to .docx, then place them where they need to be.
Is this not the route I should be taking then? Thank you for your help |
|
#4
|
||||
|
||||
|
Try:
Code:
Sub ExportDocs()
Application.ScreenUpdating = False
Dim strFolder As String, wdDoc As Document, i As Long
With Application.FileDialog(FileDialogType:=msoFileDialogFilePicker)
.Title = "Select the source document containing the Find/Replace Table"
.AllowMultiSelect = True
If .Show = -1 Then
strFolder = GetFolder
If strFolder = "" Then
MsgBox "No output folder selected. Exiting", vbCritical
Exit Sub
End If
For i = 1 To .SelectedItems.Count
Set wdDoc = Documents.Add(.SelectedItems(i))
With wdDoc
.SaveAs2 FileName:=strFolder & "\" & Split(.AttachedTemplate.Name, ".dot")(0) & ".docx", _
Fileformat:=wdFormatXMLDocument, AddToRecentFiles:=False
.Close False
End With
Next
Else
MsgBox "No source file selected. Exiting", vbExclamation
Exit Sub
End If
End With
Set wdDoc = Nothing
Application.ScreenUpdating = True
End Sub
Function GetFolder() As String
Dim oFolder As Object
GetFolder = ""
Set oFolder = CreateObject("Shell.Application").BrowseForFolder(0, "Choose an output folder", 0)
If (Not oFolder Is Nothing) Then GetFolder = oFolder.Items.Item.Path
Set oFolder = Nothing
End Function
__________________
Cheers, Paul Edstein [Fmr MS MVP - Word] |
|
#5
|
|||
|
|||
|
Wow, that works perfectly and makes much more sense. Thanks!
|
|
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
How To Move Saved New Templates From My Documents To My Templates?
|
woodbine | Word | 9 | 04-02-2015 10:28 AM |
Templates and New Documents Baased on Styles
|
Andrewmb | Word | 4 | 07-08-2012 08:16 PM |
Open documents changing font on subsequent templates
|
mikmak | Word | 7 | 03-04-2012 08:23 PM |
| Assigning templates to existing documents. Update Styles Enmasse. | bannerdog | Word | 1 | 02-28-2012 03:53 PM |
| Programmatically convert Office documents to PDF from C# | hemaneelagiri | Office | 0 | 10-21-2011 06:07 AM |