![]() |
|
|
|
#1
|
|||
|
|||
|
Hi all,
Using bits from http://vba-tutorial.com/recursive-di...x-file-search/ And bits from another page I've managed to put together a macro that does a recursive search in a path and batch convert word docs to html. When I'm home ill find the code and paste it here to see what you think needs improving. I'm totally new to this but modifying certain aspects seems like common sense to me. Anyway, in wanting to not select test.docm in the expression and then process all other documents ending in docx/ docm. Now for docm/x works ('.*doc[mx]') but the problem is, it includes the macro document itself which is called test.docm. So it converts that to html, and then closes the active document, this not processing any other documents. I've tried '(!test.docm) .*doc[mx]' but I'm probably way off. Any ideas guys? |
|
#2
|
|||
|
|||
|
It seems that using a procedure similar to your link that the following should work:
Code:
Sub FindPatternMatchedFiles()
Dim oFSO As Object
Dim oRegExp As Object
Dim varFile As Variant
Dim colFiles As Collection
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oRegExp = CreateObject("VBScript.RegExp")
oRegExp.Pattern = ".*do[ct][mx]"
oRegExp.IgnoreCase = True
Set colFiles = New Collection
RecursiveFileSearch "D:\My Documents\Word\Word Documents\Invoices", oRegExp, colFiles, oFSO
For Each varFile In colFiles
If Not varFile = "test.docm" Then
Debug.Print varFile
'Insert code here to do something with the matched files
End If
Next
'Garbage Collection
Set oFSO = Nothing
Set oRegExp = Nothing
End Sub
Sub RecursiveFileSearch(ByVal strFolder As String, ByRef oRegExp As Object, _
ByRef colMatched As Collection, ByRef oFSO As Object)
Dim oFolder As Object
Dim oFile As Object
Dim oSubFolder As Object
Dim objSubFolder As Object
'Get the folder object associated with the target directory
Set oFolder = oFSO.GetFolder(strFolder)
'Loop through the files current folder
For Each oFile In oFolder.Files
If oRegExp.test(oFile) Then
colMatched.Add (oFile)
End If
Next
'Loop through the each of the sub folders recursively
Set oSubFolder = oFolder.Subfolders
For Each objSubFolder In oSubFolder
RecursiveFileSearch objSubFolder, oRegExp, colMatched, oFSO
Next
Set oFolder = Nothing
Set oFile = Nothing
Set oSubFolder = Nothing
End Sub
|
|
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Macro Needed to bold specific lines and Macro to turn into CSV | anewteacher | Word VBA | 1 | 05-28-2014 03:59 PM |
| custom icon, undo/redo for macro, permanent macro | Rapier | Excel | 0 | 08-05-2013 06:30 AM |
Convert RegEx to Word (Devanagari Font Find/Replace)
|
gasyoun | Word VBA | 9 | 04-12-2013 04:15 PM |
| How do I assign a macro to a button when the macro is in my personal workbook? | foolios | Excel Programming | 2 | 07-27-2011 02:41 PM |
| Regex in Word: Replaced strings are in disorder | chgeiselmann | Word | 0 | 04-26-2009 11:33 AM |