PDA

View Full Version : Batch pictures one per page



Cointreau
06-16-2011, 01:30 AM
I'd like a macro that inserts multiple pictures simultaneously, but only one per page - it would also be good if they could be resized to fill approx 3/4 of the page but it's not essential - any ideas? I have very little knowledge of VBA but am learning, slowly.

Many thanks xx

Cointreau
06-16-2011, 02:10 AM
I found this online, which would work fine, but is there a way to alter the code so that it,
1) Centers the images horizontally on the page
2) Inserts just one image per page (page break between each picture?)

Sub AddMultiplePictures()
'Declare a variable as a FileDialog object.
Dim fd As FileDialog
'Create a FileDialog object as a File Picker dialog box.
Set fd = Application.FileDialog(msoFileDialogFilePicker)

'Declare a variable to contain the path
'of each selected item. Even though the path is a String,
'the variable must be a Variant because For Each...Next
'routines only work with Variants and Objects.
Dim vrtSelectedItem As Variant

'Use a With...End With block to reference the FileDialog object.
With fd

'Add a filter that includes GIF and JPEG images and make it the
second item in the list.
.Filters.Add "Images", "*.gif; *.jpg; *.jpeg"

'Sets the initial file filter to number 2.
.FilterIndex = 2

'Use the Show method to display the File Picker dialog box and
return the user's action.
'If the user presses the action button...
If .Show = -1 Then

'Step through each string in the FileDialogSelectedItems
collection.
For Each vrtSelectedItem In .SelectedItems

'vrtSelectedItem is a String that contains the path of each
selected item.

Selection.InlineShapes.AddPicture FileName:= _
vrtSelectedItem _
, LinkToFile:=False, SaveWithDocument:=True
Next vrtSelectedItem
'If the user presses Cancel...
Else
End If
End With

'Set the object variable to Nothing.
Set fd = Nothing

End Sub

Thanks!