![]() |
|
|
|
#1
|
|||
|
|||
|
The code below adds a 12 point space to the top of the cells from row 2 onwards.
Code:
Sub InsertMultipleImagesFixed()
Dim fd As FileDialog
Dim imgCount As Long
Dim imgTable As Table
Dim index As Long
Dim img As InlineShape
Dim imageLoc As Variant
Set fd = Application.FileDialog(msoFileDialogFilePicker)
With fd
.Title = "Select image files and click OK"
.Filters.Add "Images", _
"*.gif; *.jpg; *.jpeg; *.bmp; *.tif; *.png; *.wmf"
.FilterIndex = 2
End With
If fd.Show = -1 Then
imgCount = fd.SelectedItems.Count
With ActiveDocument
With .Content.Find
.Replacement.ClearFormatting
.Text = "TotalImageNumber"
.Replacement.Text = imgCount
.Execute Replace:=wdReplaceAll
End With
Set imgTable = .Tables.Add(Range:=.Characters.Last, NumRows:=imgCount, NumColumns:=2)
End With
'apply table settings
With imgTable
.Borders.Enable = False
.PreferredWidthType = wdPreferredWidthPercent
.PreferredWidth = 100
.Rows.Alignment = wdAlignRowLeft
.Columns(1).Width = 140
.Columns(2).Width = 400
End With
'loop through table adding images and text
For index = 1 To imgCount
With imgTable.Cell(index, 1).Range
With .ParagraphFormat
If index > 1 Then .SpaceBefore = 12
End With
With .Font
.Size = 12
.Underline = wdUnderlineSingle
End With
.Text = "Photograph No. " & index & ":"
.Characters(.Characters.Count - 1).Font.Underline = wdUnderlineNone
.InsertParagraphAfter
With .Paragraphs.Last.Range
.Font.Underline = wdUnderlineNone
With .ParagraphFormat
.RightIndent = InchesToPoints(0.02)
.SpaceBefore = 0
'the following are likely unnecessary
'.SpaceBeforeAuto = False
'.SpaceAfterAuto = False
End With
End With
End With
With imgTable.Cell(index, 2).Range.ParagraphFormat
.RightIndent = InchesToPoints(0.01)
If index > 1 Then .SpaceBefore = 12
'the following are likely unnecessary
'.SpaceBeforeAuto = False
'.SpaceAfterAuto = False
End With
'insert image
Set img = _
ActiveDocument.InlineShapes.AddPicture(FileName:=imageLoc & fd.SelectedItems(index), _
LinkToFile:=False, SaveWithDocument:=True, Range:=imgTable.Cell(index, 2).Range)
'resize image
With img
With .Fill
.Visible = msoFalse
.Solid
.Transparency = 0
End With
With .Line
.Weight = 0.75
.Transparency = 0#
.Visible = msoFalse
End With
'I suspect the above should simply be
'.Fill.Visible = msoFalse
'.Line.Visible = msoFalse
.LockAspectRatio = msoTrue
.Height = 288
.Width = 383.75
With .PictureFormat
.Brightness = 0.5
.Contrast = 0.5
.ColorType = msoPictureAutomatic
'these should all be unnecessary
' .CropLeft = 0#
' .CropRight = 0#
' .CropTop = 0#
End With
End With
Next index
End If
End Sub
|
|
#2
|
|||
|
|||
|
Nearly perfect! The table cells are just not centered on the page (8.5x11" size).
Thank you for the continued help. |
|
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
Batch applying a macro to remove Header and Footer using Batch Auto Addin
|
Edszx | Word VBA | 2 | 05-27-2019 11:16 PM |
VBA to insert an image and centralize it (code included)
|
puff | Word VBA | 5 | 01-17-2018 04:32 PM |
| Single Image Selection / Shortcut Key (Mac Excel 2011) Troubleshooting | chendric3 | Excel Programming | 0 | 04-14-2017 11:04 AM |
VBA batch file to insert text at end of 50 files slow, 90% CPU usage
|
equalizer88 | Word VBA | 3 | 08-16-2015 04:56 PM |
how to batch update linked image files path?
|
stanleyhuang | Word | 3 | 09-11-2014 12:51 AM |