Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 09.11.2015
Сообщений: 4
1
Word

Автоматический перенос на 2 строки вниз в конце каждой строки документа

10.02.2020, 09:57. Просмотров 1113. Ответов 4
Метки нет (Все метки)

Доброго времени суток. Работаю с архивом фотографий, есть вакуумная директория с N-ым кол-вом файлов, имена которых я через командную строку получаю в виде текстового документа, который представляет из себя столбец названий файлов в данной директории. Затем я переношу этот столбец в ворд, и вручную добавляю после каждой строки 2 переноса (enter-ом). Первый перенос служит зарезервированным местом для комментария к фотографии в документе, во второй перенос добавляется сама фотография.

Вопрос состоит в следующем - можно ли использовать какой-нибудь скрипт, который в выделенном тексте после каждой строки будет добавлять 2 переноса перед следующей строкой?
Так же хотелось бы узнать - можно ли скриптом массово загружать фотографии в нужные места документа? сейчас просто перетягиваю мышкой на нужное положение в документе, но таких фотографий могут быть тысячи

Более наглядный пример того, что я хотел бы получить на выходе - прикладываю в аттач.

Кликните здесь для просмотра всего текста
Автоматический перенос на 2 строки вниз в конце каждой строки документа
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.02.2020, 09:57
Ответы с готовыми решениями:

Автоматический перенос данных с Ecxel в Word начиная с определенной строки с каждой страницы
Здравствуйте, Задача вот такая: есть excel файл с информацией по разъемам (1 разъем = 1 страница)....

Файл: Создайте текстовый файл, содержащий в начале каждой строки гласные буквы соответствующей строки файла, а в конце строки - согласные
Создайте текстовый файл, содержащий в начале каждой строки гласные буквы соответствующей строки...

Переписать все строки файла удаляя пробелы в конце каждой строки
Дан текстовый файл F.txt. Переписать все строки файла F.txt в файл G.txt, удаляя все пробелы в...

Автоматический перенос строки label
Есть форма ее высота 170 а ширина 150 стиль формы bsDialog, на ней лежит label и если в нем...

4
223 / 134 / 45
Регистрация: 08.09.2012
Сообщений: 279
Записей в блоге: 1
10.02.2020, 12:34 2
letrix174, здравствуйте!
С такими примерами лучше обращаться на форумы по фотошопу. Если Вы не ошиблись и действительно хотите получить решение по теме этого раздела форума (VBA), приложите нормальный пример того, что необходимо получить, максимально его сделав похожим на желаемое (в виде полностью заполненного и оформленного файла).
Также приложите штук 5-10 фотографий без персональных данных и конфиденциальной информации (похожих на те, которые Вы реально загружаете в файл). Лучше упаковать их в rar или 7zip, соблюдая ограничения размеров файлов, принятые на форуме. Также необходимо указать имя папки (например, "c:\Images"), откуда будут загружаться фотки или Вы будете указывать каждый раз новую папку после запуска макроса. В этом случае мне было бы интересно решить эту задачу. Возможно, уже сегодня вечером, если никто не возьмется.

Или ждите, что кто-либо сделает это по размытой картинке.
1
0 / 0 / 0
Регистрация: 09.11.2015
Сообщений: 4
10.02.2020, 13:22  [ТС] 3
Спасибо за отклик, aequit

Попытаюсь объяснить более развернуто, используя пример, который прикреплю к сообщению.
На рабочем столе есть папка "cats" ("C:\Users\letrix\OneDrive\Рабочий стол\cats", нахождение папки может меняться, но если нужно - может быть использован корень любого диска), в которой имеется 8 фотографий. Используя Shift+ПКМ на этой папке я вызываю контекстное меню, в котором открываю окно команд, и ввожу следующую команду: "dir /b> text.txt". В папке "cats" генерируется файл под названием text.txt с перечнем всех файлов в каталоге. Эти данные я переношу в Word и подготавливаю их для дальнейших манипуляций. В конце каждой строки я 2 раза нажимаю клавишу Enter, тем самым создаю 2 переноса на новую строку, от прошлой строки с названием до следующей. Первый перенос строки в готовом документе оставляется пустым, и в дальнейшем используется для добавления комментария к каждой фотографии, которая будет в нем находиться. В следующий отступ я перетаскиваю саму фотографию из папки, в том же порядке, в каком получаю файл text.txt после манипуляций с командной строкой.

Вот примерный алгоритм моих действий
А вопрос остается прежним - можно ли автоматизировать эти переносы на следующую строку 2 раза подряд в конце прошлой строки с текстом в выделенном фрагменте или сразу во всем документе?

Нужна вся эта эпопея для структурирования фото архива, сбора комментариев к фотографиям (имена, локации, года, etc.) и передачи для согласования всех данных. Если есть идея, как это можно реализовать проще и доступнее - готов выслушать, ибо чем дальше в лес - тем больше фоток

под спойлером: архив с примерами.
Кликните здесь для просмотра всего текста
cats.rar
Win10, x64, пакет Office 2013 (если это имеет значение )
0
223 / 134 / 45
Регистрация: 08.09.2012
Сообщений: 279
Записей в блоге: 1
10.02.2020, 16:29 4
Лучший ответ Сообщение было отмечено letrix174 как решение

Решение

Никаких текстовиков и других ненужных манипуляций не нужно. Нужны только котики
Котики должны лежать в папке c:\cats\
Финальный файл сохраняется в эту же папку.
Для запуска макроса сделайте ярлычок в панели быстрого доступа.
Кликните здесь для просмотра всего текста
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
Sub AddPic()
Dim a&, sFolder$, Комментарий$, n&, FileName$
Dim z As Selection
Dim wd As Word.Document
Set z = Selection
n = 1
sFolder = "C:\cats\"
Set wd = ThisDocument
'диалог запроса выбора папки с файлами
'With Application.FileDialog(msoFileDialogFolderPicker)
'    If .Show = False Then Exit Sub
'    sFolder = .SelectedItems(1)
'End With
'sFolder = sFolder & IIf(Right(sFolder, 1) = Application.PathSeparator, "", Application.PathSeparator)
 
Application.ScreenUpdating = False
    
wd.Range.Delete
wd.PageSetup.LeftMargin = CentimetersToPoints(2)
z.ParagraphFormat.TabStops.ClearAll
z.ParagraphFormat.TabStops.Add Position:=CentimetersToPoints(0.75), Alignment:=wdAlignTabLeft, Leader:=wdTabLeaderSpaces
z.ParagraphFormat.LineSpacingRule = wdLineSpaceSingle
Selection.ParagraphFormat.SpaceBefore = 0
Selection.ParagraphFormat.SpaceAfter = 0
Selection.ParagraphFormat.FirstLineIndent = 0
Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
z.Font.Name = "Arial"
z.Font.Size = 12
 
z.TypeText "Cats" & Chr(13)
Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
Selection.TypeParagraph
z.Font.Size = 10.5
 
Selection.TypeParagraph
Selection.ParagraphFormat.Alignment = wdAlignParagraphLeft
Комментарий = "Комментарий к фото."
    
FileName = Dir(sFolder & "*.jpg")
Do While FileName <> ""
    z.TypeText n & ")" & Chr(9) & FileName & Chr(13)
    z.TypeText Комментарий & Chr(13)
    wd.InlineShapes.AddPicture FileName:=sFolder & FileName, LinkToFile:=False, _
        SaveWithDocument:=True
    wd.InlineShapes(n).Width = Application.CentimetersToPoints(5.19)
    wd.InlineShapes(n).Height = Application.CentimetersToPoints(2.88)
    n = n + 1
    z.MoveDown Unit:=wdParagraph, Count:=1
    z.TypeParagraph
    FileName = Dir
Loop
 
FileName = sFolder & "Котики" & " (#" & Int(1 + (Rnd() * 1000)) & ").docx"
wd.SaveAs FileName:=FileName, FileFormat:=wdFormatXMLDocument
Application.ScreenUpdating = True
End Sub
1
Вложения
Тип файла: zip AddPicCats.zip (25.5 Кб, 2 просмотров)
0 / 0 / 0
Регистрация: 09.11.2015
Сообщений: 4
10.02.2020, 17:15  [ТС] 5
aequit, Вы даже не представляете, как я Вам благодарен! Это именно то, что было нужно)
Огромнейшее вам спасибо, теперь даже повеситься не хочется от масштабов!

З.Ы. 1.5к фоток за 2 минуты, ну не прелесть?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.02.2020, 17:15

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Когда в конце строки нажимаешь стрелку вниз, то курсор перескакивает в начало текста
Почему при печатании текста в Паскаль абц,когда к конце строки нажимаешь стрелку вниз, то курсор...

Удалить пустые строки в конце документа Word
Извините что обращаюсь с таким ламерским вопросом - никак не удается мне разобраться с объектами...

Автоматический перенос строки с информацией из одной таблицы в другую
Здравствуйте. Мне нужна помощь в следующем вопросе… У меня есть две таблицы: «Клиенты» и «Заказы...

Автоматический перенос строки в textBox при нажатии на Enter
Доброго времени суток, форумчане! Есть функция для textBox, которая при нажатии на Enter...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.