How to Embed Images in Word 2000 documents as OLE objects through VB6 code?


I've got a problem with the attached code. What I'm trying to do is loop through adding external files as images embedded in a word 2000 document in vb6 code.

In my code - below - you can see that I set the linktofile flag to be false....

srcRange.InlineShapes.AddOLEObject fileName:=exportPath, LinkToFile:=False, DisplayAsIcon:=False, range:=range

yet when I run the following code:

wordDoc.SaveAs sfd.fileName, AddToRecentFiles:=False

I get a word document created, with a subdirectory and all the image files stored in there - referenced by the parent word document.

Any help would be greatly appreciated!

Public Sub OnSavingWordDocument(ByVal wordDoc As Word.Document, ByVal doc As DOMDocument)
    Dim fso As New FileSystemObject
    Dim ts As TextStream
    Dim nodes As MSXML2.IXMLDOMNodeList
    Dim nodeCount As Long
    Dim srcRange As Word.range
    Set nodes = doc.selectNodes(mXPath)
    Set srcRange = wordDoc.Content
    For nodeCount = 1 To nodes.length Step 1
        If (FindToken(srcRange, mToken)) Then
            srcRange.Text = ""
            Dim exportPath As String
            exportPath = GetTempFile("cdxml")
            Set ts = fso.CreateTextFile(exportPath, True, True)
            ts.Write nodes(nodeCount - 1).Text
            Dim range As Word.range
            Set range = srcRange
            srcRange.InlineShapes.AddOLEObject fileName:=exportPath, LinkToFile:=False, DisplayAsIcon:=False, range:=range
            srcRange.End = wordDoc.Content.End
            fso.DeleteFile exportPath, True
        End If
    Next nodeCount
End Sub
OnSavingWordDocument wordDoc, doc
wordDoc.SaveAs sfd.fileName, AddToRecentFiles:=False

Open in new window

Who is Participating?
Computer101Connect With a Mentor Commented:
PAQed with points refunded (500)

EE Admin
Have you tried the InlineShapes.AddPicture method:

srcRange.InlineShapes.AddPicture exportPath

I'm not sure why the OLE object is creating links when you specify LinkToFile=False.  I'm not able to replicate that behaviour.  What kind of images are they?
rickbarnsleyAuthor Commented:
Solved it -

I changed...
                    wordDoc.SaveAs sfd.fileName, AddToRecentFiles:=False
                    wordDoc.SaveAs sfd.fileName, FileFormat:=wdFormatDocument, AddToRecentFiles:=False

Can't explain it, but it works now! Cheers
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.