Цитата:
как распечатать многостраничный документ word в vb , что бы был выбор с какой по какую страницу печатать ?
спасибо за помощь.
Если Вы хотите просто выдать пользователю диалоговое окно "Печать", то это делается командой Dialogs и в простейшем случае выглядит так:
Код:
Set oknoPechat = Dialogs(wdDialogFilePrint)
oknoPechat.Show
Окно печати будет отображено на экране, и в нем можно будет указать диапазон страниц для распечатки.
Если же Вы желаете выполнить такую из программы, заранее каким-то образом определив границы диапазона печати, то воспользуйтесь методом PrintOut. Если его параметр Range установить в значение wdPrintRangeOfPages, тот в его другом параметре Pages можно указать диапазон печати точно так же, как в окне "Печать" - перечислив через запятую отдельные страницы или разделив дефисом номера первой и последней печатаемых страниц.
К примеру, страницы с 3 по 10 текущего документа распечатает такая команда:
Код:
ActiveDocument.PrintOut Range:=wdPrintRangeOfPages, Pages:="3-10"
а первую, третью и с пятой по седьмую - такая:
Код:
ActiveDocument.PrintOut Range:=wdPrintRangeOfPages, Pages:="1, 3, 5-7"
Обратите внимание, что значением параметра Pages может быть только строка, поэтому если вы желаете включить в это значение числовые переменные, то вначале превратите их в строковые командой Str() и сформируйте текстовую строку из них, включив между ними дефис с помощью оператора "+".
К примеру, если ранее в программе номера первой и последней страниц диапазона печати записывались в переменные a и b, то команда должна выглядеть как
Код:
ActiveDocument.PrintOut Range:=wdPrintRangeOfPages, Pages:=Str(a)+"-"+Str(b)
Подробнее о методе PrintOut читайте в Справке VBA.