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

Компьютерный форум OSzone.net » Сфера Microsoft » Microsoft Office (Word, Excel, Outlook и т.д.) » 2016 - Нужно создать таблицу из большого количества фотографий (около 1000)

Ответить
Настройки темы
2016 - Нужно создать таблицу из большого количества фотографий (около 1000)

Аватара для Gowdin

Пользователь


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

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


Задача следующая. Есть большое количество фото, порядка 1000, которые нужно вставить в таблицу, чтобы каждое фото встало в свою ячейку. В MS Word приходится вставлять поштучно, что очень долго. Можно автоматизировать процесс? Типа, выделил все файлы фотографий, вставил в документ и они распределились по ячейкам таблицы, одно фото - одна ячейка. Либо, может есть какой сторонний софт, который может создать таблицу из фотографий, которую потом вставить в Word?
В идеале, конечно, силами самого Word (2016), т.к., таблица уже создана и отформатирована.

Отправлено: 16:20, 01-09-2017

 

Ветеран


Contributor


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

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


Цитата Gowdin:
В MS Word приходится вставлять поштучно, что очень долго. »
А макросы на что?

Цитата Gowdin:
В идеале, конечно, силами самого Word (2016), т.к., таблица уже создана и отформатирована. »
Тогда прилагайте в архиве Ваш документ и образцы фотографий (если сюда не поместится, то на RGhost или Яндекс.Диск). Укажите, что делать, если количество выбранных фотографий окажется больше числа ячеек таблицы.

Отправлено: 17:32, 01-09-2017 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Gowdin

Пользователь


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

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


Вот: https://yadi.sk/d/lKWxMkAD3MXKYg
дефектовка_пример - то, как оно должно выглядеть.
По-простому, через "запись макроса" что-то не разобрался, как перемещаться по списку файлов.

Отправлено: 18:39, 01-09-2017 | #3


Ветеран


Contributor


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

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


Gowdin, так, ну, кода-то там всего ничего будет. Примерная болванка:
Код: Выделить весь код
    If objFSO.FolderExists(strFolder) Then
        With ActiveDocument.Tables.Item(1)
            For Each objFile In objFSO.GetFolder(strFolder).Files
                .Rows.Add
                .Cell(.Rows.Count, 1).Range.Text = .Rows.Count - 2
                .Cell(.Rows.Count, 2).Range.InlineShapes.AddPicture FileName:=objFSO.BuildPath(strFolder, objFile.Name), LinkToFile:=False, SaveWithDocument:=True
            Next
        End With
    End If
Основной вопрос — как лучше и удобнее будет организовать исполнение?! То есть, как сделать, например, выбор: выбор каталога с файлами, выбор файлов из одного каталога, выбор файлов с любого места? Как быть с документом: заполнять уже открытый существующий документ, делать на основе шаблона, создавать программно? В общем, опишите, как Вы сие видите.
Это сообщение посчитали полезным следующие участники:

Отправлено: 09:07, 02-09-2017 | #4


Аватара для Gowdin

Пользователь


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

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


Сие я вижу так.
У меня уже есть таблица в документе.
Я устанавливаю курсор на начальную ячейку, с которой буду заполнять столбец вниз.
Открываю диалог "вставить рисунок".
Выбираю нужное мне количество файлов.
Жму "вставить".
И они вставляются с начальной ячейки вниз.
Но не так, как делает Word по умолчанию, когда все рисунки вставляются в одну ячейку, а с распределением по строкам: одна ячейка - одно фото.
Если строк не хватает, они добавляются.

Отправлено: 19:33, 02-09-2017 | #5


Ветеран


Contributor


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

Профиль | Отправить 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



Компьютерный форум OSzone.net » Сфера Microsoft » Microsoft Office (Word, Excel, Outlook и т.д.) » 2016 - Нужно создать таблицу из большого количества фотографий (около 1000)

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - Распаковка большого количества zip (пакетная распаковка zip из разных папок) dark-------13 Скриптовые языки администрирования Windows 3 12-03-2013 13:00
Установка большого количества .exe LEXYS AutoIt 1 23-02-2012 09:44
CMD/BAT - Подстановка большого количества параметров. Zeneth Скриптовые языки администрирования Windows 13 30-12-2011 13:16
Разное - [решено] Установка большого количества жестких дисков. KPACHbIu Накопители (SSD, HDD, USB Flash) 2 15-06-2011 14:31
Интерфейс - [решено] Переименование большого количества файлов 7human7 Microsoft Windows 2000/XP 7 22-11-2008 09:48




 
Переход