|
Компьютерный форум OSzone.net » Сфера Microsoft » Microsoft Office (Word, Excel, Outlook и т.д.) » 2016 - Нужно создать таблицу из большого количества фотографий (около 1000) |
|
2016 - Нужно создать таблицу из большого количества фотографий (около 1000)
|
Пользователь Сообщения: 67 |
Профиль | Отправить PM | Цитировать Задача следующая. Есть большое количество фото, порядка 1000, которые нужно вставить в таблицу, чтобы каждое фото встало в свою ячейку. В MS Word приходится вставлять поштучно, что очень долго. Можно автоматизировать процесс? Типа, выделил все файлы фотографий, вставил в документ и они распределились по ячейкам таблицы, одно фото - одна ячейка. Либо, может есть какой сторонний софт, который может создать таблицу из фотографий, которую потом вставить в Word?
В идеале, конечно, силами самого Word (2016), т.к., таблица уже создана и отформатирована. |
|
Отправлено: 16:20, 01-09-2017 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата Gowdin:
Цитата Gowdin:
|
||
Отправлено: 17:32, 01-09-2017 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 67
|
Профиль | Отправить PM | Цитировать Вот: https://yadi.sk/d/lKWxMkAD3MXKYg
дефектовка_пример - то, как оно должно выглядеть. По-простому, через "запись макроса" что-то не разобрался, как перемещаться по списку файлов. |
Отправлено: 18:39, 01-09-2017 | #3 |
Ветеран Сообщения: 27449
|
Профиль | Отправить 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 |
Пользователь Сообщения: 67
|
Профиль | Отправить PM | Цитировать Сие я вижу так.
У меня уже есть таблица в документе. Я устанавливаю курсор на начальную ячейку, с которой буду заполнять столбец вниз. Открываю диалог "вставить рисунок". Выбираю нужное мне количество файлов. Жму "вставить". И они вставляются с начальной ячейки вниз. Но не так, как делает Word по умолчанию, когда все рисунки вставляются в одну ячейку, а с распределением по строкам: одна ячейка - одно фото. Если строк не хватает, они добавляются. |
|
Отправлено: 19:33, 02-09-2017 | #5 |
Ветеран Сообщения: 27449
|
Профиль | Отправить 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 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
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 |
|