Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Не нравится мне этот сценарий. Предлагаю другой.

Вот код:
Скрытый текст
Код: Выделить весь код
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).
Выбираете изображения для вставки:
Скрытый текст

Получаете примерный результат:
Скрытый текст

В искомый столбец вставляются изображения, в первый столбец — номера по порядку. Никаких пустых строк предварительно добавлять не нужно.
Это сообщение посчитали полезным следующие участники:

Отправлено: 07:37, 03-09-2017 | #6