Добрый день! Никогда с word плотно не работал, и вчера узнал про макросы.
К сожалению прямо сейчас нет времени в них погружаться, но после - обязательно изучу плотно.
Подскажите пожалуйста. У меня допустим 500 документов на печать, в каждом из которых в 3 местах на разных страницах указан номер формата 12345-001 ( 001 - на один документ ) , 12345-002 и так до 12345-500.
Можно ли как при помощи макросов задать чтобы допустим после 12345-... номер автозаполнялся сам, и печать при этом была автоматической. Т.е. вопроса 2:
1. Как запрограммировать чтобы номера заполнялись сами. Допустим 40 файлов на печать за подход, и перед каждой печатью он будет присваивать следующий номер - 12345-001, потом 002, потом 003 и так до 12345-044.
2. Можно ли запрограммировать так, чтобы через word образовалась серия на печать, и при каждой новой печати шел следующий по счету номер.
Как вы печатаете такое количество файлов? С помощью какой-то программы?
Можно попробовать такой вариант. Сделать кнопку на ленте в Ворде. Пользователь щёлкает кнопку, появляется диалог для выбора папки или файлов (что удобнее пользователю), пользователь выбирает папку или файлы, макрос отправляет каждый файл на печать.
Печатать макрос будет так: макрос открывает файл, вносит изменения в заданные места документа, отправляет документ на печать, закрывает документ без сохранения.
Подходит такой вариант?
Печатать я, очевидно, буду через принт кондактор, либо через adobe pdf reader pro.
Впервые просто столкнулся с таким объемом и понимаю что сидеть в ручную печатать серийник в 500 документах даже еще и в трех местах это просто ад. и безумие
Мой вариант из ответа #2 не походит?
Я правильно понял?
1. я создаю кнопку в панели инструментов ( которая запускает макрос )
2. этот макрос будет проставлять серийный номер
3. при нажатии на копку - мне будет предлагаться выбрать что? 1 документ? и каждое новое нажатие и выбор там будет уже другой серийный номер? ( если один типовой документ )
( если вы про какое-то вложение или код в сообщении, то он видимо не приклеился, его там нет )
Кнопку вы можете сами создать на Панели быстрого доступа или на Ленте - где вам удобнее.
Да, предложенный в ответе #2 способ будет проставлять серийные номера.
Остальное написано в ответе #2 - там написано, что пользователь выбирает.
Макрос я ещё не делал, вложения я не вкладывал, я только уточняю детали.
так а как создать такой макрос? какой будет код? какая логика?
я нагуглил два варианта, вы тоже их наверное видели они сразу в поиске - через {DOCVIRABLE dog} и через закладки. но т.к. я не умею пользоваться макросами, у меня что-то получилось, но оно во-первых проставляет не в формате 12345-001, а просто 12345-1, а во-вторых оно то работает то неработает. и шрифт у номера получается другой , можно ведь его тоже задать как в документе?
в-третьих я не понимаю - я вроде вставил эту переменную в 3 местах, а работает в двух.
мне бы еще если не сложно - смогли бы кратко как вообще установить и сохранить макрос? сохранять его как для всех документов или только для конкретного?
Сначала я выясняю детали, а макрос будут делать потом.
То, что я предложил в ответе #2, вам подходит? Или вы планируете делать по-другому?
да наверное такая логика подходит, чтобы серийный номер выдавался последовательно при печати каждого следующего экземпляра
А метки в документах вы уже поставили? Это вам надо будет вручную открыть каждый файл и вставить метку.
Метки бывают разные, сейчас я просто хочу узнать, есть у вас возможность открыть каждый файл и внести в него изменение вручную.
1. Так, значит я беру и в местах где есть этот номер и создаю там закладку. Назову ее num.
Соответственно, я создаю num1 num2 num3 , или просто num и при создании новой закладки я просто выбираю ее из списка предложенных?
2. Закладки я создаю выделением только части "001" как переменной , верно?
Надо ли мне сначала сохранить документ как шаблон с поддержкой макросов?
Не обязательно делать закладку.
Можно просто текст напечатать и окружить его редкоиспользуемыми символами, например: ~метка~.
И макрос будет искать текст: ~метка~ и вместо него будет подставлять нужный текст.
Метки можно закрасить для удобства пользователя, чтобы быстро их находить. Макрос будет убирать закраску.
Цитата:
Надо ли мне сначала сохранить документ как шаблон с поддержкой макросов?
Макрос можно поместить в Normal. Если у вас всего один макрос, то достаточно использовать Normal.
Ок.
Значит в требуемых местах напечатал 12345-~049~ и выделил цветом сделав голубой фон ~049~.
что дальше?
Дальше нужно сделать, чтобы после запуска макроса появлялся диалог для выбора папки или файлов.
Пользователь выбирает папку или файлы, макрос открывает каждый файл, делает замену (вместе ~метка~ пишите нужный текст), отправляет его на печать и закрывает файл без сохранения.
Т.е. создаю макрос.
Вид - > макросы - > Макросы меню, задаю ему имя - > открывается консоль разработчика. Что мне туда писать?
У меня кстати была проблема - задаешь имя макроса , оно в формате
Sub Имя_макроса ()
End Sub
но когда вставлял код, как бы имя макроса это же название его функции \ команда, да? например есть команда
Sub AutoOpen()
End Sub
и получалось в итоге с моим название:
Sub Имя_макроса ()
Sub AutoOpen()
End Sub
End Sub
так же ведь не должно быть?
Цитата:
Sub Имя_макроса ()
Sub AutoOpen()
End Sub
End Sub
так же ведь не должно быть?
Да, так не должно быть. Внутри процедуры не может быть другой процедуры.
Цитата:
Вид - > макросы - > Макросы меню, задаю ему имя - > открывается консоль разработчика. Что мне туда писать?
Макрос начинается с того, что пишите такой код:
Sub Макрос()
End Sub
И затем внутрь пишите код:
Sub Макрос()
Сюда пишите код.
End Sub
да, я так и подумал.
и какой код будет?
нашел вот такой c использованием закладок:
Sub AutoOpen()
Dim bm As Bookmark
Dim i As Long
Set bm = ActiveDocument.Bookmarks("num")
i = Val(bm.Range.Text)
bm.Range.Select
With Selection
.Text = i + 1
.Bookmarks.Add Name:="num"
.Collapse wdCollapseEnd
End With
Set bm = Nothing
End Sub
его можно адаптировать под то что нужно мне? например сделать чтобы номер писался не 1, а 001
AutoOpen вам не нужен. Пользователь щёлкает кнопку, выбирает папку или файлы.
Нужно с этого начать.
Почему вы решили использовать AutoOpen?
потому что единственное что я нашел в гугле
AutoOpen используется, чтобы автоматически запускать макрос (без участия пользователя) после открытия файла. Для вашей задачи нет такой необходимости, т.к. пользователь будет щёлкать кнопку.
ок. что мне тогда использовать? какую функцию?
Вам нужно найти в Гугле:
как отобразить диалог для выбора папки или файлов (что вам удобнее);
как пройтись по всем файлам в выбранной папке или по всем выбранным файлам;
как открыть документ, как закрыть документ.
И потом останется сделать замену меток.