Insert excel as ole object into word doc

G

Garth M

Hi there,

I'm merging word documents into a word doc report using selection.insertfile
command. I also want to insert excel files as ole objects nto the word
report. How do I go about it?

Thanks
Garth
 
L

Lene Fredborg

See the VBA help on AddOLEObject.

Example: The following code will insert the active sheet of the file
C:\MyExcelFile.xls as an InlineShape, i.e. with wrapping style "In line with
text":

Selection.InlineShapes.AddOLEObject _
FileName:="C:\MyExcelFile.xls", _
LinkToFile:=False, _
DisplayAsIcon:=False

If you want the Excel file to be inserted with another wrapping style than
"In line with text", it must be inserted as a Shape:

ActiveDocument.Shapes.AddOLEObject _
FileName:="C:\MyExcelFile.xls", _
LinkToFile:=False

--
Regards
Lene Fredborg
DocTools - Denmark
www.thedoctools.com
Document automation - add-ins, macros and templates for Microsoft Word
 
J

Jay Freedman

Hi there,

I'm merging word documents into a word doc report using selection.insertfile
command. I also want to insert excel files as ole objects nto the word
report. How do I go about it?

Thanks
Garth

If you want it positioned inline with text, use this kind of code:

Sub demo()
Dim path As String
Dim Ils As InlineShape

path = "C:\temp\somefile.xls"

Set Ils = ActiveDocument.InlineShapes.AddOLEObject( _
FileName:=path, LinkToFile:=False, _
DisplayAsIcon:=False, Range:=Selection.Range)
End Sub

If you want it to float, you need something different:

Sub demo()
Dim path As String
Dim Shp As Shape

path = "C:\temp\somefile.xls"

Set Shp = ActiveDocument.Shapes.AddOLEObject( _
FileName:=path, LinkToFile:=False, _
DisplayAsIcon:=False, Anchor:=Selection.Range)
With Shp
.WrapFormat.Type = wdWrapSquare
.RelativeHorizontalPosition = _
wdRelativeHorizontalPositionMargin
.RelativeVerticalPosition = _
wdRelativeVerticalPositionParagraph
.Left = InchesToPoints(1.5)
.Top = InchesToPoints(0.25)
End With
End Sub

There are other parameters you can set, but this gives you the flavor
of the technique.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top