Не нравится мне этот сценарий. Предлагаю другой.
Вот код:
Скрытый текст
Код:
Option Explicit
Sub Sample()
Dim objFileDialog As FileDialog
Dim collSelectedFiles As FileDialogSelectedItems
Dim strFileName As Variant
Dim intCurrColumn As Integer
If Application.Selection.Information(wdWithInTable) Then
Set objFileDialog = Application.FileDialog(FileDialogType:=msoFileDialogOpen)
With objFileDialog
.Title = "Выберете изображения для размещения в таблице"
.ButtonName = "Вставить"
.Filters.Clear
.Filters.Add "Изображения", "*.jpg; *.jpeg; *.png; *.gif; *.tif; *.tiff; *.bmp"
.Filters.Add "Все файлы", "*.*"
.AllowMultiSelect = True
'.InitialView = msoFileDialogViewThumbnail
If .Show() Then
Set collSelectedFiles = .SelectedItems
With Application.Selection.Tables.Item(1)
intCurrColumn = Application.Selection.Information(wdStartOfRangeColumnNumber)
For Each strFileName In collSelectedFiles
.Rows.Add
.Cell(.Rows.Count, 1).Range.Text = .Rows.Count - 2
.Cell(.Rows.Count, intCurrColumn).Range.InlineShapes.AddPicture FileName:=strFileName, LinkToFile:=False, SaveWithDocument:=True
Next
End With
Set collSelectedFiles = Nothing
End If
End With
Set objFileDialog = Nothing
Else
MsgBox "Поместите курсор ввода внутрь ячейки таблицы", vbExclamation + vbOKOnly, "Курсор ввода находится вовне таблицы"
End If
End Sub
Вот Ваша таблица:
Помещаете курсор ввода в одну из отмеченных ячеек и любым способом вызываете процедуру (горячая клавиша, строка меню, кнопка на панели инструментов — если таковое возможно в Вашей версии Word, або даже «ручками» из редактора VBA).
Выбираете изображения для вставки:
Получаете примерный результат:
В искомый столбец вставляются изображения, в первый столбец — номера по порядку. Никаких пустых строк предварительно добавлять не нужно.