Results 1 to 20 of 53

Thread: Insert Multiple Pictures Into Table Word With Macro

Threaded View

Previous Post Previous Post   Next Post Next Post
  1. #37
    VBAX Regular
    Joined
    Jun 2017
    Posts
    15
    Location
    I came across this website, and reviewed and applied this code - It is awesome. I need to make some tweaks to this, and I was wondering if anyone would help me.. I am a N00B when it comes to macros, and all I have done is goofed this up alot. Could anybody help me out?

    In addition, I would like to:

    centers pictures in table
    Inserts figure reference (Figure 1, etc. numerically)
    Would like a maximum of four images, which would take a majority of the page. The images would be likely 40%-50% current size.

    Any help or guidance would be much appreciated. heres the code:

    Sub AddPics()
        Application.ScreenUpdating = False
        Dim oTbl As Table, i As Long, j As Long, k As Long, StrTxt As String
    
         'Select and insert the Pics
        With Application.FileDialog(msoFileDialogFilePicker)
            .Title = "Select image files and click OK"
            .Filters.Add "Images", "*.gif; *.jpg; *.jpeg; *.bmp; *.tif; *.png"
            .FilterIndex = 2
    
            If .Show = -1 Then
                 'Add a 2-row by 2-column table with 7cm columns to take the images
                Set oTbl = Selection.Tables.Add(Selection.Range, 2, 2)
                With oTbl
                    .AutoFitBehavior (wdAutoFitFixed)
                    .Columns.Width = CentimetersToPoints(7)
                     'Format the rows
                    Call FormatRows(oTbl, 1)
                End With
    
                For i = 1 To .SelectedItems.Count
                    j = Int((i + 1) / 2) * 2 - 1
                    k = (i - 1) Mod 2 + 1
                     'Add extra rows as needed
    
                    If j > oTbl.Rows.Count Then
                        oTbl.Rows.Add
                        oTbl.Rows.Add
                        Call FormatRows(oTbl, j)
                    End If
    
                     'Insert the Picture
                    ActiveDocument.InlineShapes.AddPicture _
                    FileName:=.SelectedItems(i), LinkToFile:=False, _
                    SaveWithDocument:=True, Range:=oTbl.Rows(j + 1).Cells(k).Range
                     'Get the Image name for the Caption
                    StrTxt = Split(.SelectedItems(i), "\")(UBound(Split(.SelectedItems(i), "\")))
                     'Insert the Caption on the row above the picture
                    oTbl.Rows(j).Cells(k).Range.Text = Split(StrTxt, ".")(0)
                Next
            Else
            End If
        End With
        Application.ScreenUpdating = True
    End Sub
    
    
    Sub FormatRows(oTbl As Table, x As Long)
        With oTbl
            With .Rows(x + 1)
                .Height = CentimetersToPoints(7)
                .HeightRule = wdRowHeightExactly
                .Range.Style = "Normal"
            End With
            With .Rows(x)
                .Height = CentimetersToPoints(0.75)
                .HeightRule = wdRowHeightExactly
                .Range.Style = "Normal"
            End With
        End With
    End Sub





    Last edited by SamT; 06-30-2017 at 02:30 PM.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •