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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.06.2009, 07:53   #1
Busine2009
Новичок
Джуниор
 
Регистрация: 23.05.2009
Сообщений: 167
По умолчанию Печать документов.

А можно создать такой макрос, чтобы при нажатии на кнопку печать в диалоговом окне "Печать" появлялось сообщение, что в документе содержатся листы в альбомной ориентации (если они там есть) и формата отличного от А4?
Busine2009 вне форума Ответить с цитированием
Старый 04.06.2009, 11:18   #2
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию Возможно, но не так, как вы себе представляете

Нет, нельзя. Отловить печать можно только до появления диалогового окна «Печать». Либо при нажатии на кнопку «Быстрая печать».
Все остальное возможно.

Добавлено позже
Код:
Sub FilePrint()
  Dim oSec As Section, sNotA4$, sNotPortrait$, iSecPgFirst%, iSecPgLast%
  For Each oSec In ActiveDocument.Sections 'Просматриваем все разделы в документе
    'Номер страницы, с которой начинается раздел
    iSecPgFirst = ActiveDocument.Range(0, oSec.Range.Start).ComputeStatistics(wdStatisticPages)
    'Номер страницы, которой раздел заканчивается
    iSecPgLast = ActiveDocument.Range(0, oSec.Range.End).ComputeStatistics(wdStatisticPages) - 1
    iSecPgLast = IIf(oSec.Index = ActiveDocument.Sections.Count, iSecPgLast + 1, iSecPgLast)
    'Если страницы в разделе имеют формат, отличный от А4
    If oSec.PageSetup.PaperSize <> wdPaperA4 Then
      sNotA4 = sNotA4 & vbCr & "Раздел " & oSec.Index & ", страницы " & iSecPgFirst & IIf(iSecPgLast - iSecPgFirst > 1, "-", ", ") & iSecPgLast
    End If
    'Если страницы в разделе имеют альбомную ориентацию
    If oSec.PageSetup.Orientation <> wdOrientPortrait Then
      sNotPortrait = sNotPortrait & vbCr & "Раздел " & oSec.Index & ", страницы " & iSecPgFirst & IIf(iSecPgLast - iSecPgFirst > 1, "-", ", ") & iSecPgLast
    End If
  Next
  If sNotA4 <> "" Then sNotA4 = "В документе есть страницы, размер которых отличен от А4:" & sNotA4 & vbCr
  If sNotPortrait <> "" Then sNotPortrait = "В документе есть страницы с альбомной ориентацией:" & sNotPortrait
  If sNotA4 <> "" Or sNotPortrait <> "" Then
    'Выводим сообщение
    Select Case MsgBox(sNotA4 & vbCr & sNotPortrait, vbInformation + vbOKCancel, "Предпечать")
      'Если в окне с сообщением нажали ОК, то показываем диалог печати
      Case vbOK: Dialogs(wdDialogFilePrint).Show
      'Если Отмена, то завершаем выполнение.
      Case vbCancel: Exit Sub
    End Select
  Else: Dialogs(wdDialogFilePrint).Show
  End If
End Sub
Лучше день потерять — потом за пять минут долететь!©

Последний раз редактировалось viter.alex; 04.06.2009 в 13:56. Причина: Добавил код макроса.
viter.alex вне форума Ответить с цитированием
Старый 04.06.2009, 19:48   #3
Busine2009
Новичок
Джуниор
 
Регистрация: 23.05.2009
Сообщений: 167
По умолчанию

То есть есть возможность управления принтером по умолчанию?
Busine2009 вне форума Ответить с цитированием
Старый 10.06.2009, 06:43   #4
Busine2009
Новичок
Джуниор
 
Регистрация: 23.05.2009
Сообщений: 167
По умолчанию

Чудо-макрос, просто восхитительный. Преклоняюсь даже.


Какие команды надо добавить в этот код, чтобы появлялось сообщение, что в документе содержится скрытый текст и страницы с полями более 3 см?

Последний раз редактировалось Busine2009; 10.06.2009 в 07:48.
Busine2009 вне форума Ответить с цитированием
Старый 11.06.2009, 19:24   #5
Busine2009
Новичок
Джуниор
 
Регистрация: 23.05.2009
Сообщений: 167
По умолчанию

Если кому интересно, то помогу преобразовать этот макрос в более быстрый, с выводом сообщений о наличии определенных параметров в определенном разделе. Представленный выше макрос работает медленно. Я преобразовал этот макрос в более быстрый (можно сказать, моментальный).
Busine2009 вне форума Ответить с цитированием
Старый 11.06.2009, 19:29   #6
Busine2009
Новичок
Джуниор
 
Регистрация: 23.05.2009
Сообщений: 167
По умолчанию

Витер. Прочитал в учебники, что $ и % старые символы, зачем вы их используете?
Busine2009 вне форума Ответить с цитированием
Старый 11.06.2009, 20:33   #7
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

Потому, что так короче.
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума Ответить с цитированием
Старый 18.06.2009, 14:28   #8
кудряшка
Новичок
Джуниор
 
Регистрация: 15.06.2009
Сообщений: 1
По умолчанию

Что нужно сделать? Делаю фон в ворде а когда печатаю на листе фона нет.
кудряшка вне форума Ответить с цитированием
Старый 18.06.2009, 14:36   #9
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

Включите в настройках «Печать фоновых цветов и рисунков»
Для Word 2007: Кнопка «Office»→Параметры Word→Экран. В разделе «Параметры печати».
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Печать HTML документов Максим_Леонидович HTML и CSS 2 17.01.2009 14:16
Восстановление документов )Игнат( Свободное общение 4 02.10.2008 11:50
Пакетная печать HTML документов из Delphi Pitonio Помощь студентам 9 16.07.2008 09:08
перехват отправления чужими программами отправки на печать документов Nat Win Api 7 20.04.2007 16:07