Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Word
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.09.2009, 15:12   #1
Andrey_410
Новичок
Джуниор
 
Регистрация: 13.09.2009
Сообщений: 3
По умолчанию Автоматизация издания приказов

Добрый день!
Приходится практически каждый день писать один и тот же повторяющийся приказ и хотелось бы чтобы дата и номер приказа подставлялись автоматически. Ну например, если сегодня был приказ №254 то завтра открыв шаблон приказа мы видим №255 ну и так далее...
Andrey_410 вне форума Ответить с цитированием
Старый 13.09.2009, 19:12   #2
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

Смотрите пример, надеюсь это то, что вы хотите.
Если нужно, то можно и сохранять приказ под определенным именем.

В документе номер приказа помещен в закладку OrderNum. Когда вы создаете на основе этого шаблона документ, макрос Document_New увеличивает содержимое этой закладки на 1. А дата вставлена с помощью поля DATE: { DATE \@ "d MMMM yyyy 'г.'" }
Вложения
Тип файла: rar Шаблон приказа_simple.rar (11.4 Кб, 24 просмотров)
Лучше день потерять — потом за пять минут долететь!©

Последний раз редактировалось viter.alex; 13.09.2009 в 19:30. Причина: Перезалил шаблон
viter.alex вне форума Ответить с цитированием
Старый 13.09.2009, 19:39   #3
Andrey_410
Новичок
Джуниор
 
Регистрация: 13.09.2009
Сообщений: 3
По умолчанию

Спасибо что ответили.
Что то у меня ничего не выходит. Открываю шаблон, вижу дату и приказ №44, печатаю пару слов ниже и сохраняю документ под именем приказ 44.
После этого выбираю создать новый документ из шаблона при открытии вижу теже дату и номер приказа 44, хотя по идее должен быть №45. Может я что то не так делаю?
Кстати забыл сказать,что для чистоты эксперимента системную дату на завтра я менял.
Andrey_410 вне форума Ответить с цитированием
Старый 13.09.2009, 19:40   #4
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

Скачайте шаблон заново. Я ошибся в первом варианте, не добавил сохранение нового номера в шаблоне.
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума Ответить с цитированием
Старый 13.09.2009, 21:26   #5
Andrey_410
Новичок
Джуниор
 
Регистрация: 13.09.2009
Сообщений: 3
По умолчанию

Блин фигня какая то
Скачал шаблон заново, но ничего не изменилось.
Может я что то не так делаю? Если Вам не затруднительно опишите пошаговую процедуру моих действий пожалуйста
Andrey_410 вне форума Ответить с цитированием
Старый 13.09.2009, 22:23   #6
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

Фишка состоит в какой-то непрозрачной работе с объектом ThisDocument. Срабатывает через раз. Я изменил немного код. Откройте шаблон для редактирования (ПКМ→Открыть) и замените макрос на нижеприведенный. Должно помочь. У меня работает.
Код:
Private Sub Document_New()
  Dim oDoc As Document
  Dim oRng As Range
  Dim bm As Bookmarks
  
  'Запоминаем последний созданный документ
  Set oDoc = Documents(1)
  
  'Запоминаем закладки в документе
  Set bm = oDoc.Bookmarks
  
  'Запоминаем положение интересующей нас закладки
  Set oRng = bm("OrderNum").Range
  
  'Увеличиваем текст в закладке на 1
  oRng.Text = CInt(oRng.Text) + 1
  
  'Поскольку при таком добавлении содержимого в закладку эта закладка уничтожается,
  'то нужно вернуть закладку в документ
  bm.Add "OrderNum", oRng
  
  'Теперь в той же последовательности сохраняем обновленную закладку в шаблон
  Set bm = ThisDocument.Bookmarks
  Set oRng = bm("OrderNum").Range
  oRng.Text = oDoc.Bookmarks("OrderNum").Range.Text
  bm.Add "OrderNum", oRng
  oDoc.AttachedTemplate.Save
End Sub
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума Ответить с цитированием
Старый 14.09.2009, 04:16   #7
Aent
Форумчанин
 
Аватар для Aent
 
Регистрация: 17.07.2009
Сообщений: 519
По умолчанию

Если брать/сохранять номер из переменной документа (variables), то
не придётся модифицировать закладки.
Aent вне форума Ответить с цитированием
Старый 14.09.2009, 07:49   #8
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

Aent, совершенно верно. Но в шаблон нельзя сохранить переменную документа. Или я ошибаюсь?
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума Ответить с цитированием
Старый 14.09.2009, 08:04   #9
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию С полем DOCVARIABLE

Еще один вариант, но уже с применением поля DOCVARIABLE, по предложению Aent
Макрос выглядит так:
Код:
Private Sub Document_New()
  Dim oDoc As Document
  
  'Запоминаем последний созданный документ
  Set oDoc = Documents(1)
  
  'Изменяем переменную в документе
  oDoc.Variables("OrderNum").Value = oDoc.Variables("OrderNum").Value + 1
  'Обновляем поля в документе
  oDoc.Fields.Update
  'Записываем новое значение переменной в шаблон
  ThisDocument.Variables("OrderNum").Value = oDoc.Variables("OrderNum").Value
  'Сохраняем шаблон
  oDoc.AttachedTemplate.Save
End Sub
Вложения
Тип файла: rar Шаблон приказа_simple.rar (11.4 Кб, 33 просмотров)
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Автоматизация БД tisha35 Microsoft Office Access 2 01.09.2009 15:31
==Автоматизация процесса== zenner Microsoft Office Word 10 17.08.2009 14:17
автоматизация процесса cheshiki1 Microsoft Office Excel 2 29.05.2009 16:29
Автоматизация в игре axumac Свободное общение 3 22.01.2009 20:37
Автоматизация юр фирмы NeZамужем Помощь студентам 1 27.03.2008 01:30