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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.07.2009, 19:30   #1
Nuta
Новичок
Джуниор
 
Регистрация: 24.07.2009
Сообщений: 2
Восклицание Как запретить выводить на печать элементы управления

Пожалуйста помогите. Необходимо, чтобы при печати документа элементы управления не отображались. В Eexcel это делается просто у элемента управления свойство PrintObjtct = false . В Word я такого не нашла. Может быть у кого-нибудь есть такой опыт?
Nuta вне форума Ответить с цитированием
Старый 24.07.2009, 21:24   #2
Aent
Форумчанин
 
Аватар для Aent
 
Регистрация: 17.07.2009
Сообщений: 519
По умолчанию

Единственное что приходит в голову (если документ изначально не спроектирован специальным образом) пройтись по коллекции InlineShapes активного документа и удалить перед печатью её элементы. Если Вы сами проектируете документ, можно заранее поместить элементы управления в условные поля и перед печатью менять переменную условия.
Пример:
{If Mode > 1 "{CONTROL Forms.CommandButton.1 \s}" ""}
Кнопка в примере выше будет видна только при Mode > 1
Aent вне форума Ответить с цитированием
Старый 26.07.2009, 16:42   #3
Busine2009
Новичок
Джуниор
 
Регистрация: 23.05.2009
Сообщений: 167
По умолчанию

Я честно говоря не понимаю, в чём дело, но предложу посмотреть Сервис - Параметры - Печать. Может что здесь будет.
Busine2009 вне форума Ответить с цитированием
Старый 27.07.2009, 18:13   #4
Nuta
Новичок
Джуниор
 
Регистрация: 24.07.2009
Сообщений: 2
Радость

[QUOTE=Aent;314539]Единственное что приходит в голову (если документ изначально не спроектирован специальным образом) пройтись по коллекции InlineShapes активного документа и удалить перед печатью её элементы. Если Вы сами проектируете документ, можно заранее поместить элементы управления в условные поля и перед печатью менять переменную условия.

Спасибо большое!Интересное решение! Попробую так сделать! Жаль только, что в отличии от Excel у Word нет таких событий как BeforPrint. Придется навешивать кнопку. Я вышла чуть-чуть по другому из этой ситуации. Просто уменьшила кнопки до размера 1X1. Все равно огромное спасибо
Nuta вне форума Ответить с цитированием
Старый 27.07.2009, 19:36   #5
CaptainNemo
Пользователь
 
Аватар для CaptainNemo
 
Регистрация: 02.06.2009
Сообщений: 49
По умолчанию

Цитата:
Сообщение от Nuta Посмотреть сообщение
Жаль только, что в отличии от Excel у Word нет таких событий как BeforPrint.
А что мешает создать класс для работы с Word на уровне Application?

В модуль класса вставляете код:
Код:
Public WithEvents Ворд As Application
Private Sub Ворд_DocumentBeforePrint(ByVal Doc As Document, _
Cancel As Boolean)
    MsgBox "Привет, это событие BeforePrint"
End Sub
Для инициализации нового экземпляра класса Ворд в модуль ThisDocument пишете

Код:
Dim НовыйЭкземпляр As New Class1

Private Sub Document_Open()

    Set НовыйЭкземпляр.Ворд = Word.Application
End Sub
Аналогично можно отслеживать любые другие события Word на уровне Application. см. файл
Вложения
Тип файла: doc Test.doc (42.0 Кб, 58 просмотров)
Android & Linux
CaptainNemo вне форума Ответить с цитированием
Старый 27.07.2009, 19:55   #6
Aent
Форумчанин
 
Аватар для Aent
 
Регистрация: 17.07.2009
Сообщений: 519
По умолчанию

Nuta, Вы пишете
Цитата:
Word нет таких событий как BeforPrint
1) Cобытие в Excel называется BeforePrint
2) Можно легко перехватить печать (равно как и другие команды MS WORD),
поместив в модуль кода публичную подпрограмму с именем команды Word
(Их список можно увидеть, выбрав Alt-F8 макросы из команд Word, или построить, выполнив команду ListCommands из этого списка).
Альтернативный путь: добавить в VBA Project модуль кода с именем, идентичным коменде MS WORD (в Вашем случае FilePrint) и содержащий подпрограмму с именем Main.
Код:
Public Sub FilePrint()
' Обработка ...
'.......
ActiveDocument.PrintOut
'.......
end sub

Последний раз редактировалось Aent; 27.07.2009 в 19:58.
Aent вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как создать элементы управления в Word на VBA??? Генерал_Касетр Помощь студентам 0 15.06.2009 17:35
Элементы управления в форме! Rom1k06 Microsoft Office Excel 10 30.04.2009 21:33
Как спрятать элементы управления NikolayGVB Microsoft Office Excel 2 22.01.2009 03:15
Элементы управления Rom1k06 Microsoft Office Excel 7 28.08.2008 09:47
Элементы управления и список значений tomasmazas Microsoft Office Excel 1 26.12.2007 09:20