1

Тема: Подскажите, как сделать макрос "отправить на печать"?

Здравствуйте, мне нужно в документе Word 2007 вставить кнопку, при нажатии на которую выплывает окошко "печать" как при Ctrl+P ...
Подскажите, как это можно сделать? Как кнопку сделать - разобрался (через элементы управления), а вот как написать макрос и прикрепить его к кнопке - не знаю =/.
С созданием макросов и программированием на VB знаком очень плохо, поэтому, если можно, поподробнее smile  smile  smile
Заранее благодарен!
P.S. Этот документ будет с ограниченным форматированием (только ввод данных в поля форм).

2

Re: Подскажите, как сделать макрос "отправить на печать"?

Кликните на кнопке и откроется редактор кода с автоматически созданной процедурой. Добавьте в то место, где мигает курсор следующий код:

  Dialogs(wdDialogFilePrint).Show

В итоге должен быть вот примерно такой код:

Private Sub CommandButton1_Click()
  Dialogs(wdDialogFilePrint).Show
End Sub

3

Re: Подскажите, как сделать макрос "отправить на печать"?

А также можно в панель быстрого запуска добавить стандартную команду (кнопку) для вывода на печать (с выводом диалогового окна для установки параметров печати) или команду (кнопку) быстрой печати (без вывода диалогового окна с параметрами, заданными по умолчанию или установленными при последнем открытии диалогового окна установки параметров печати в текущем сеансе работы Word (при запуске  нового сеанса устанавливаются значения по умолчанию). Все делается без макросов - за несколько секунд.

4

Re: Подскажите, как сделать макрос "отправить на печать"?

Усложню задачу big_smile
нужен макрос - печать страницы N на принтере Х
поясню: есть шаблон, после заполнения которого стр.1-3 отправляется на лазерный принтер, а стр.4-5 на матричный, причем на матричный лучше отсылать по одной странице, так как на автомате вторую страницу не всегда правильно затягивает.
В идеале планирую сделать 2 кнопки с привязанными к ним макросами. 1ая печать на лазерный, 2ая печать на матричный, 2ая кнопка первое нажатие печать 4ой стр., второе нажатие 5ой.
Во загнул то...
кое что подобное нарыл, тока номер стр. не знаю как указать

5

Re: Подскажите, как сделать макрос "отправить на печать"?

ActivePrinter = "Имя лазерного принтера"
    Application.PrintOut Filename:="", Range:=wdPrintRangeOfPages, item:= _
        wdPrintDocumentContent, Copies:=1, Pages:="1-3", PageType:= _
        wdPrintAllPages, ManualDuplexPrint:=False, Collate:=True, Background:= _
        True, PrintToFile:=False, PrintZoomColumn:=0, PrintZoomRow:=0, _
        PrintZoomPaperWidth:=0, PrintZoomPaperHeight:=0
    ActivePrinter = "Имя струйного принтера"
    Application.PrintOut Filename:="", Range:=wdPrintRangeOfPages, item:= _
        wdPrintDocumentContent, Copies:=1, Pages:="4-6", PageType:= _
        wdPrintAllPages, ManualDuplexPrint:=False, Collate:=True, Background:= _
        True, PrintToFile:=False, PrintZoomColumn:=0, PrintZoomRow:=0, _
        PrintZoomPaperWidth:=0, PrintZoomPaperHeight:=0

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

Он получен макрорекордером, измените его под себя. Имена принтеров поставьте свои, страницы необходимые - тоже.
При указании страниц можно указывать диапазон через тире, список - через запятую

Отредактировано andrkar (16.06.2010 20:48:32)

6

Re: Подскажите, как сделать макрос "отправить на печать"?

Спасибо!!! big_smile
А подскажите ещё, что нужно дописать в этот макрос, чтоб печатались страницы с 3-й, по ту, на которой будет стоять кнопка, и возможно ли привязать начальную страницу печати (которая будет прописана в макросе) к месту в документе - например к закладке или заголовку?

Просто в документе очень много форм, и кол-во страниц может сильно варьироваться. Есть четкое начало основного текста (3-я страница) и в окончании будет стоять кнопка с макросом. Далее большой блок методических рекомендаций и приложения с формами, которые тоже могут растягиваться на несколько страниц, в зависимости от объема введенного текста. Вот их-то ещё и надо распечатать!
В крайнем случае я могу переместить теоретический текст в самый конец, но в любом случае, первый вопрос актуален. Заранее благодарю.

7

Re: Подскажите, как сделать макрос "отправить на печать"?

Selection.Information(wdActiveEndAdjustedPageNumber) ' Номер текущей страницы

Selection.Information(wdActiveEndPageNumber)' Номер текущей страниц по умолчанию

Присваиваете какой-то переменной значение данного выражения, а при печати параметр Page складываете из символьного значения данной переменной, дефиса и символа номера страницы, по которую нужно печатать..

Отредактировано andrkar (16.06.2010 20:54:41)

8

Re: Подскажите, как сделать макрос "отправить на печать"?

А могли бы вы выложить полностью макрос - конкретно - печать с 3-й страницы -  по текущую? И с присвоением значения к переменной не понятно... Что является переменной, и как присваивать к ней значение? Пример: есть закладка на слово "Приложение_1" как здесь привязаться к номеру страницу, на котором она располагается?

9

Re: Подскажите, как сделать макрос "отправить на печать"?

Selection.GoTo what:=wdGoToBookmark, Name:="Имя_закладки" ' Переход к закладке с именем "Имя_закладки" (в имени закладки не должно быть пробелов!".
Dim CurrentPage As Integer
Dim PageRange As String
CurrentPage = Selection.Information(wdActiveEndPageNumber)

PageRange = "3-" + Str(CurrentPage)

в выше приведенный макрос вместо текста в кавычках "1-3" пишете просто PageRange

10

Re: Подскажите, как сделать макрос "отправить на печать"?

Спасиб, все работает!!!