How can i insert multiple pictures in a word doc, simultaneously?

  • Thread starter Thread starter sam
  • Start date Start date
S

sam

Hello!

I need to put in multiple photos from a file in my reports, and i would like
them to be sized to fit 6-10 per page. Is there any way to do that in one
simple step?

Thanks!
 
It depends on your definition of simple. In order to control the layout of
the images you need to insert them in a table of fixed cell width. The
images will then adapt to the width of the cell. How many will fit of a page
is determined by whether the images are portrait mode or landscape mode - or
mixed modes.

The following macro will insert a two column table at the cursor and proceed
to enter all the images that you select from the dialog into the cells of
that table. You can experiment with the number of columns in the table, but
somewhere between 1 and 3 will do the job.
http://www.gmayor.com/installing_macro.htm

Sub InsertMultipleImages()
Dim fd As FileDialog
Dim oTable As Table
Dim sNoDoc As String
Dim vrtSelectedItem As Variant
If Documents.Count = 0 Then
sNoDoc = MsgBox(" " & _
"No document open!" & vbCr & vbCr & _
"Do you wish to create a new document to hold the images?", _
vbYesNo, "Insert Images")
If sNoDoc = vbYes Then
Documents.Add
Else
Exit Sub
End If
End If
'add a 1 row 2 column table to take the images
Set oTable = Selection.Tables.Add(Selection.Range, 1, 2)
oTable.AutoFitBehavior (wdAutoFitFixed)
Set fd = Application.FileDialog(msoFileDialogFilePicker)
With fd
.Title = "Select image files and click OK"
.Filters.Add "Images", "*.gif; *.jpg; *.jpeg; *.bmp; *.tif; *.png"
.FilterIndex = 2
If .Show = -1 Then
oTable.Cell(1, 1).Select
For Each vrtSelectedItem In .SelectedItems
With Selection
.InlineShapes.AddPicture FileName:= _
vrtSelectedItem _
, LinkToFile:=False, SaveWithDocument:=True, _
Range:=Selection.Range
.MoveRight Unit:=wdCell
End With
Next vrtSelectedItem
Else
End If
End With
If Len(oTable.Rows.Last.Cells(1).Range) = 2 Then
oTable.Rows.Last.Delete
End If
Set fd = Nothing
End Sub


--
<>>< ><<> ><<> <>>< ><<> <>>< <>><<>
Graham Mayor - Word MVP

My web site www.gmayor.com

<>>< ><<> ><<> <>>< ><<> <>>< <>><<>
 
Also, with regard to Graham's response, you can use thumbnail view in Windows
Explorer, and simply drag and drop desired thumbnails one by one into each
individual desired table cell.
 
Hi Graham,

Thank you for your insight on this. It's very helpful. I've applied the Macro to Word 2010 and it works great. However, I was wondering if you know of a way to modify this code to enable it to center the images within the table cells, upon inserting them. Furthermore, is there a way to distribute the vertical layout of the images to span equally across the page, from top to bottom. I suppose this would involve maximizing the height of the rows to consume the full length of each page. Is this possible?

I'm just trying to clean up the presentation. Because every time I use this Macro, I have to go in after I insert the pictures and center them within the table; then, adjust the height of the rows to distribute them equally from the top to the bottom of the page.

Thank you for your time and assistance. It's much appreciated.

Sincerely,

Eric
 
Hi Graham,

Thank you for your insight on this. It's very helpful. I've applied the Macro to Word 2010 and it works great. However, I was wondering if you know of a way to modify this code to enable it to center the images within the table cells, upon inserting them. Furthermore, is there a way to distribute the vertical layout of the images to span equally across the page, from top to bottom. I suppose this would involve maximizing the height of the rows to consume the full length of each page. Is this possible?

I'm just trying to clean up the presentation. Because every time I use this Macro, I have to go in after I insert the pictures and center them within the table; then, adjust the height of the rows to distribute them equally from the top to the bottom of the page.

Thank you for your time and assistance. It's much appreciated.

Sincerely,

Eric
 
Hi Graham,

Thank you for your insight on this. It's very helpful. I've applied the Macro to Word 2010 and it works great. However, I was wondering if you know of a way to modify this code to enable it to center the images within the table cells, upon inserting them. Furthermore, is there a way to distribute the vertical layout of the images to span equally across the page, from top to bottom. I suppose this would involve maximizing the height of the rows to consume the full length of each page. Is this possible?

I'm just trying to clean up the presentation. Because every time I use this Macro, I have to go in after I insert the pictures and center them within the table; then, adjust the height of the rows to distribute them equally from the top to the bottom of the page.

Thank you for your time and assistance. It's much appreciated.

Sincerely,

Eric
 
Hi Graham,

Thank you for your insight on this. It's very helpful. I've applied the Macro to Word 2010 and it works great. However, I was wondering if you know of a way to modify this code to enable it to center the images within the table cells, upon inserting them. Furthermore, is there a way to distribute the vertical layout of the images to span equally across the page, from top to bottom. I suppose this would involve maximizing the height of the rows to consume the full length of each page. Is this possible?

I'm just trying to clean up the presentation. Because every time I use this Macro, I have to go in after I insert the pictures and center them within the table; then, adjust the height of the rows to distribute them equally from the top to the bottom of the page.

Thank you for your time and assistance. It's much appreciated.

Sincerely,

Eric
 
The macro creates a two column table with fixed width cells, each half the
distance between the current margins. Images are inserted in line and as
images will adapt to the cell width, any images (larger than the width of
the cells) inserted into those cells will fill the available space. Whether
they are centred or left aligned should be immaterial unless the images are
smaller than the cells, but I have added the commands to centre align

The number of rows that will fit on the page will depend on whether the
pictures are portrait or landscape and the size of the page margins. If they
are all the same orientation, you can apply a suitable a fixed row height
where indicated with +++++++

I have revised the quoted macro below:

Sub InsertMultipleImages()
Dim fd As FileDialog
Dim oTable As Table
Dim iRow As Integer
Dim iCol As Integer
Dim oCell As Range
Dim i As Long
Dim sNoDoc As String
If Documents.Count = 0 Then
sNoDoc = MsgBox(" " & _
"No document open!" & vbCr & vbCr & _
"Do you wish to create a new document to hold the images?", _
vbYesNo, "Insert Images")
If sNoDoc = vbYes Then
Documents.Add
Else
Exit Sub
End If
End If
'add a 1 row 2 column table to take the images
Set oTable = Selection.Tables.Add(Selection.Range, 1, 2)
'+++++++++++++++++++++++++++++++++++++++++++++
oTable.AutoFitBehavior (wdAutoFitFixed)
oTable.Rows.Height = CentimetersToPoints(7)
oTable.Range.Cells.VerticalAlignment = wdCellAlignVerticalCenter
'++++++++++++++++++++++++++++++++++++++++++++++
Set fd = Application.FileDialog(msoFileDialogFilePicker)
With fd
.Title = "Select image files and click OK"
.Filters.Add "Images", "*.gif; *.jpg; *.jpeg; *.bmp; *.tif; *.png"
.FilterIndex = 2
If .Show = -1 Then
For i = 1 To .SelectedItems.Count
If i Mod 2 = 0 Then
iRow = i / 2
iCol = 2
Else
iRow = (i + 1) / 2
iCol = 1
End If
Set oCell = oTable.Cell(iRow, iCol).Range
oCell.InlineShapes.AddPicture FileName:= _
.SelectedItems(i), _
LinkToFile:=False, _
SaveWithDocument:=True, _
Range:=oCell
oCell.ParagraphFormat.Alignment = wdAlignParagraphCenter
If i < .SelectedItems.Count And i Mod 2 = 0 Then
oTable.Rows.Add
End If
Next i
End If
End With
Set fd = Nothing
End Sub




--
<>>< ><<> ><<> <>>< ><<> <>>< <>><<>
Graham Mayor - Word MVP

My web site www.gmayor.com

<>>< ><<> ><<> <>>< ><<> <>>< <>><<>
 
Hi Graham

This macro is really useful, however I need to be able to insert a comment or caption below each photo. Is there any easy way of acheiving this?

Thanks

Simon
 
Back
Top