![]() |
|
#1
|
|||
|
|||
|
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? |
|
#2
|
||||
|
||||
|
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
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] |
|
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
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 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 images with incrementallly-numbered filenames
|
mqx | Word VBA | 4 | 11-13-2013 11:22 AM |