Более элегантный способ - работать с Range
объектами, например, используемыми в Ответе на другой вопрос . Но поскольку вам кажется, что вам удобнее использовать Selection
, я использовал это в приведенном ниже фрагменте кода.
Если не нужны ни нумерация, ни подпись с надписью, нет смысла использовать InsertCaption
функциональность, которая конкретно делает эти вещи. Вместо этого просто вставьте текст в нужную позицию (под рисунком).
Код делает это, выбирая картинку, перемещая один символ вправо (нажимая клавишу со стрелкой вправо), а затем вставляя текст. Обратите внимание, что первым символом является метка абзаца (нажатие клавиши Enter), а затем заголовок.
«Последние 4 цифры фотографии» - я предполагаю, что подразумевается «имя файла» - можно сделать, ограничив строкуMid
возвращает четыре символа. (См. , 4
, добавленный к нему.)
For Each vrtSelectedItem In .SelectedItems
dotPos = InStr(vrtSelectedItem, ".")
lenName = Len(vrtSelectedItem)
capt = Mid(vrtSelectedItem, lenName + (dotPos - 4 - lenName), 4)
With Selection
Set pic = .InlineShapes.AddPicture(fileName:= _
vrtSelectedItem, LinkToFile:=False, SaveWithDocument:=True, _
Range:=Selection.Range)
pic.Range.Select
.MoveRight wdCharacter
Selection.Text = vbCr & capt
.MoveRight wdCell, 1
End With
Next vrtSelectedItem