Microsoft Office Forums

Go Back   Microsoft Office Forums > >

Reply
 
Thread Tools Display Modes
  #1  
Old 05-06-2015, 02:33 PM
vanwijnen vanwijnen is offline Insert multiple images & controls into a document Windows 7 64bit Insert multiple images & controls into a document Office 2013
Novice
Insert multiple images & controls into a document
 
Join Date: May 2015
Posts: 1
vanwijnen is on a distinguished road
Default Insert multiple images & controls into a document

Hi there,

I'm using the script at https://www.msofficeforums.com/drawi...ument-all.html to make a 2 columns table inserting pictures @ once. Works great.



But...
Instead of captions of the picture-name, I want to automatically add a pre-made listbox VB control.

In the document attached, the listbox attribute is in my Word-document, and till now I copy/paste that attribute over the captions.

Would be great if I could have that listbox dropped under the inserted pics right away using the auto-table script!

But how?
Attached Files
File Type: docm attachment.docm (32.9 KB, 13 views)
Reply With Quote
  #2  
Old 06-05-2015, 06:16 AM
macropod's Avatar
macropod macropod is offline Insert multiple images & controls into a document Windows 7 64bit Insert multiple images & controls into a document Office 2010 32bit
Administrator
 
Join Date: Dec 2010
Location: Canberra, Australia
Posts: 21,956
macropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond reputemacropod has a reputation beyond repute
Default

Hi vanwijnen,

I've been away for 3 1/2 months, hence the delay in replying.

What you're inserting isn't 'a pre-made listbox VB control' but a dropdown content control. As the original discussion only concerned images & captions, I've split this discussion off into a new thread.

In the 'AddPics' sub, you'll see the code block:
Code:
        'Insert the Caption on the row below the picture
        With oTbl.Cell(r + 1, c).Range
          .InsertBefore vbCr
          .Characters.First.InsertCaption _
          Label:="Picture", Title:=StrTxt, _
          Position:=wdCaptionPositionBelow, ExcludeLabel:=False
          .Characters.First = vbNullString
          .Characters.Last.Previous = vbNullString
        End With
That code needs to be replaced with code to get the dropdown from wherever you've stored it - or to create & populate one from scratch. For example, the following code retrieves the first content control from a document named 'Source.Docx' stored in your 'Documents' folder:
Code:
Sub AddPics()
    Application.ScreenUpdating = False
    Dim i As Long, j As Long, c As Long, r As Long, NumCols As Long, DocSrc As Document
    Dim oTbl As Table, TblWdth As Single, StrTxt As String, RwHght As Single
    On Error GoTo ErrExit
    Set DocSrc = Documents.Open("C:\Users\" & Environ("Username") & "\Documents\Source.Docx", AddtoRecentFiles:=False, Visible:=False, ReadOnly:=True)
    NumCols = CLng(InputBox("How Many Columns per Row?"))
    RwHght = CSng(InputBox("What row height for the pictures, in inches (e.g. 1.5)?"))
    On Error GoTo 0
     '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 NumCols-column table to take the images
            Set oTbl = Selection.Tables.Add(Range:=Selection.Range, NumRows:=2, NumColumns:=NumCols)
            With ActiveDocument.PageSetup
                TblWdth = .PageWidth - .LeftMargin - .RightMargin - .Gutter
            End With
            With oTbl
                .AutoFitBehavior (wdAutoFitFixed)
                .Columns.Width = TblWdth / NumCols
            End With
            CaptionLabels.Add Name:="Picture"
            For i = 1 To .SelectedItems.Count Step NumCols
                r = ((i - 1) / NumCols + 1) * 2 - 1
                 'Format the rows
                Call FormatRows(oTbl, r, RwHght)
                For c = 1 To NumCols
                    j = j + 1
                     'Insert the Picture
                    ActiveDocument.InlineShapes.AddPicture _
                    FileName:=.SelectedItems(j), LinkToFile:=False, _
                    SaveWithDocument:=True, Range:=oTbl.Cell(r, c).Range
                     'Get the Image name for the Caption
                    StrTxt = Split(.SelectedItems(j), "\")(UBound(Split(.SelectedItems(j), "\")))
                    StrTxt = ": " & Split(StrTxt, ".")(0)
                     'Insert the Caption on the row below the picture
                    With oTbl.Cell(r + 1, c).Range
                        .FormattedText = DocSrc.ContentControls(1).Range.Paragraphs(1).Range.FormattedText
                    End With
                     'Exit when we're done
                    If j = .SelectedItems.Count Then Exit For
                Next
                 'Add extra rows as needed
                If j < .SelectedItems.Count Then
                    oTbl.Rows.Add
                    oTbl.Rows.Add
                End If
            Next
        Else
        End If
    End With
    DocSrc.Close
ErrExit:
    Application.ScreenUpdating = True
End Sub
 '
Sub FormatRows(oTbl As Table, x As Long, Hght As Single)
    With oTbl
        With .Rows(x)
            .Height = InchesToPoints(Hght)
            .HeightRule = wdRowHeightExactly
 
        End With
        With .Rows(x + 1)
            .Height = CentimetersToPoints(0.5)
            .HeightRule = wdRowHeightExactly
        End With
    End With
End Sub
__________________
Cheers,
Paul Edstein
[Fmr MS MVP - Word]
Reply With Quote
Reply

Thread Tools
Display Modes


Similar Threads
Thread Thread Starter Forum Replies Last Post
Insert multiple images &amp; controls into a document Insert paragraph break before images jsoule Word VBA 3 02-25-2015 07:53 AM
Insert image icons are showing up on images that have content controls but only on some computers. mandylach Word 0 11-10-2014 07:44 PM
Insert multiple images &amp; controls into a document Insert different images to multiple labels Ravon Word 3 10-16-2014 01:13 PM
More than one content controls in a word document lucky16 Word VBA 6 07-10-2014 08:34 AM
Insert multiple images &amp; controls into a document Insert images with incrementallly-numbered filenames mqx Word VBA 4 11-13-2013 11:22 AM

Other Forums: Access Forums

All times are GMT -7. The time now is 01:18 PM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.
Search Engine Optimisation provided by DragonByte SEO (Lite) - vBulletin Mods & Addons Copyright © 2024 DragonByte Technologies Ltd.
MSOfficeForums.com is not affiliated with Microsoft