I have some lazy friends who come up with strange requirements. One such guy wanted me to extract images from Word document into a separate folder, which he want to use later. I found that saving the Webpage creates the images in a folder and that would be enough for the sloth friend. Here is the code snippet of that.
This code Saves the given document in Temporary folder (See How to get Temp folder using VBA)
Then it deletes the file and folder from the location (See Different Ways to Delete Files in VBA) to be sure there is no clash.
It then saves the document and loops through the Images folder using Dir function (See Dir Function in VBA) and stores them in an array
Function Save_As_HTML(ByRef oTempWd As Document) As Boolean
Dim sDir
Dim iDir As Integer
Dim oShp As Word.Shape ' Word Shape Object
On Error GoTo Err_Save_As_HTML
sTempFolder = GetTempFolder()
sImageFolder = sTempFolder & "Save_As_HTML_files\"
Delete_File sTempFolder & "Save_As_HTML.html"
Delete_File sImageFolder & "*.*"
RmDir sImageFolder
oTempWd.SaveAs sTempFolder & "Save_As_HTML.html", FileFormat:= _
wdFormatHTML, LockComments:=False, Password:="", AddToRecentFiles:=True, _
WritePassword:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts:=False, _
SaveNativePictureFormat:=False, SaveFormsData:=False, SaveAsAOCELetter:= _
False
oTempWd.Close (False)
Erase arImageFiles
sDir = Dir(sImageFolder & "*.gif") ' You can also use PNG format
Do Until Len(sDir) = 0
iDir = iDir + 1
arImageFiles(iDir) = sDir
sDir = Dir
Loop
Err_Save_As_HTML:
If Err <> 0 Then
Debug.Assert Err = 0
Debug.Print Err.Description
Err.Clear
Resume Next
End If
End Function
No comments:
Post a Comment