- Сообщения
- 3
- Реакции
- 0
Добрый день.
Задача следующая. Имеем большое количество cdr-файлов (макетов этикеток). Вся текстовая информация в данных файлах реализована в виде текста, то есть шрифты не в кривых. В каждом макете есть объект Artistic text в котором написано к примеру:
Дата изготовления: 2023 г.
Что нужно:
Необходим макрос, вызывая который вместо "2023" вставляется реальная дата из Windows в формате "месяц, год".
Пример:
было Дата изготовления: 2023 г.
стало Дата изготовления: 04. 2023 г. либо Дата изготовления: 05. 2023 г. и так далее.
То есть при вызове макроса мы производим замену текста на реальную дату.
Как я работаю сейчас:
Использую операцию Sub Translate()
Но это просто замена одного текста на другой.
Вот код:
где "oldtext" это то, что я меняю. Например вместо 2022, заменяю 2023.
"newtext" - это то, чем заменяем наш 2022.
Но нужно, чтобы в "newtext" подгружалась именно реальная дата в формате "месяц, год".
Подскажите пожалуйста, как дополнить вышеуказанный код? Подходит-ли он для данной задачи, или будут другие предложения, такие как просто вставка прямоуголника (заглушки) с актуальной датой.
Задача следующая. Имеем большое количество cdr-файлов (макетов этикеток). Вся текстовая информация в данных файлах реализована в виде текста, то есть шрифты не в кривых. В каждом макете есть объект Artistic text в котором написано к примеру:
Дата изготовления: 2023 г.
Что нужно:
Необходим макрос, вызывая который вместо "2023" вставляется реальная дата из Windows в формате "месяц, год".
Пример:
было Дата изготовления: 2023 г.
стало Дата изготовления: 04. 2023 г. либо Дата изготовления: 05. 2023 г. и так далее.
То есть при вызове макроса мы производим замену текста на реальную дату.
Как я работаю сейчас:
Использую операцию Sub Translate()
Но это просто замена одного текста на другой.
Вот код:
Код:
Sub Translate()
Optimization = True ' turn off screen updates
ActiveDocument.PreserveSelection = False 'ignore last selection
Dim s As Shape
For Each s In ActivePage.FindShapes(, cdrTextShape)
s.Text.Replace "oldtext", "newtext", False, ReplaceAll:=True
...
Next s
Optimization = False ' restore screen updates
ActiveDocument.PreserveSelection = True ' remember last selection
ActiveDocument.ActiveWindow.Refresh ' update drawing window
End Sub
где "oldtext" это то, что я меняю. Например вместо 2022, заменяю 2023.
"newtext" - это то, чем заменяем наш 2022.
Но нужно, чтобы в "newtext" подгружалась именно реальная дата в формате "месяц, год".
Подскажите пожалуйста, как дополнить вышеуказанный код? Подходит-ли он для данной задачи, или будут другие предложения, такие как просто вставка прямоуголника (заглушки) с актуальной датой.