When you record a macro and print using the duplex options, it does not capture duplex in the dialog.
This is the macro that was generated when I double-sided a test document:
ActivePrinter = "\MyServerMyHPPrinter"
Application.PrintOut FileName:="", Range:=wdPrintAllDocument, Item:= _
wdPrintDocumentWithMarkup, Copies:=1, Pages:="", PageType:= _
wdPrintAllPages, Collate:=True, Background:=True, PrintToFile:=False, _
PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _
PrintZoomPaperHeight:=0
During the recording of the Macro, the document printed duplex. When I closed/reopened the document and ran the Macro, it printed one-sided. Using Word from Office 365 and printing to HP Laser Jet9050dn. I also tried adding , ManualDuplexPrint:=False
after wdPrintAllPages. This did nothing for me.
If this was formatted incorrectly, please forgive me…. this is my first post here.
title | keywords | f1_keywords | ms.prod | api_name | ms.assetid | ms.date | ms.localizationpriority |
---|---|---|---|---|---|---|---|
Application.PrintOut method (Word) |
vbawd10.chm158335424 |
vbawd10.chm158335424 |
word |
Word.Application.PrintOut |
f795218e-cd49-f3ac-c03d-9a9424361392 |
06/08/2017 |
medium |
Application.PrintOut method (Word)
Prints all or part of the specified document.
Syntax
expression.PrintOut (Background, Append, Range, OutputFileName, From, To, Item, Copies, Pages, PageType, PrintToFile, Collate, FileName, ActivePrinterMacGX, ManualDuplexPrint, PrintZoomColumn, PrintZoomRow, PrintZoomPaperWidth, PrintZoomPaperHeight)
expression Required. A variable that represents an Application object.
Parameters
Name | Required/Optional | Data type | Description |
---|---|---|---|
Background | Optional | Variant | Set to True to have the macro continue while Microsoft Word prints the document. |
Append | Optional | Variant | Set to True to append the specified document to the file name specified by the OutputFileName argument. False to overwrite the contents of OutputFileName. |
Range | Optional | Variant | The page range. Can be any WdPrintOutRange constant. |
OutputFileName | Optional | Variant | If PrintToFile is True, this argument specifies the path and file name of the output file. |
From | Optional | Variant | The starting page number when Range is set to wdPrintFromTo. |
To | Optional | Variant | The ending page number when Range is set to wdPrintFromTo. |
Item | Optional | Variant | The item to be printed. Can be any WdPrintOutItem constant. |
Copies | Optional | Variant | The number of copies to be printed. |
Pages | Optional | Variant | The page numbers and page ranges to be printed, separated by commas. For example, «2, 6-10» prints page 2 and pages 6 through 10. |
PageType | Optional | Variant | The type of pages to be printed. Can be any WdPrintOutPages constant. |
PrintToFile | Optional | Variant | True to send printer instructions to a file. Make sure to specify a file name with OutputFileName. |
Collate | Optional | Variant | When printing multiple copies of a document, True to print all pages of the document before printing the next copy. |
FileName | Optional | Variant | The path and file name of the document to be printed. If this argument is omitted, Word prints the active document. (Available only with the Application object.) |
ActivePrinterMacGX | Optional | Variant | This argument is available only in Microsoft Office Macintosh Edition. For additional information about this argument, consult the language reference Help included with Microsoft Office Macintosh Edition. |
ManualDuplexPrint | Optional | Variant | True to print a two-sided document on a printer without a duplex printing kit. If this argument is True, the PrintBackground and PrintReverse properties are ignored. Use the PrintOddPagesInAscendingOrder and PrintEvenPagesInAscendingOrder properties to control the output during manual duplex printing. This argument may not be available to you, depending on the language support (U.S. English, for example) that you have selected or installed. |
PrintZoomColumn | Optional | Variant | The number of pages you want Word to fit horizontally on one page. Can be 1, 2, 3, or 4. Use with the PrintZoomRow argument to print multiple pages on a single sheet. |
PrintZoomRow | Optional | Variant | The number of pages you want Word to fit vertically on one page. Can be 1, 2, or 4. Use with the PrintZoomColumn argument to print multiple pages on a single sheet. |
PrintZoomPaperWidth | Optional | Variant | The width to which you want Word to scale printed pages, in twips (20 twips = 1 point; 72 points = 1 inch). |
PrintZoomPaperHeight | Optional | Variant | The height to which you want Word to scale printed pages, in twips (20 twips = 1 point; 72 points = 1 inch). |
Example
This example prints the current page of the active document.
ActiveDocument.PrintOut Range:=wdPrintCurrentPage
This example prints all the documents in the current folder. The Dir function is used to return all file names that have the file name extension «.doc».
adoc = Dir("*.DOC") Do While adoc <> "" Application.PrintOut FileName:=adoc adoc = Dir() Loop
This example prints the first three pages of the document in the active window.
ActiveDocument.ActiveWindow.PrintOut _ Range:=wdPrintFromTo, From:="1", To:="3"
This example prints the comments in the active document.
If ActiveDocument.Comments.Count >= 1 Then ActiveDocument.PrintOut Item:=wdPrintComments End If
This example prints the active document, fitting six pages on each sheet.
ActiveDocument.PrintOut PrintZoomColumn:=3, _ PrintZoomRow:=2
This example prints the active document at 75% of actual size.
ActiveDocument.PrintOut _ PrintZoomPaperWidth:=0.75 * (8.5 * 1440), _ PrintZoomPaperHeight:=0.75 * (11 * 1440)
See also
Application Object
[!includeSupport and feedback]
0 / 0 / 0 Регистрация: 16.11.2015 Сообщений: 66 |
|
1 |
|
07.09.2020, 23:47. Показов 5567. Ответов 19
Доброго Всем!
0 |
2630 / 1636 / 744 Регистрация: 23.03.2015 Сообщений: 5,141 |
|
08.09.2020, 09:40 |
2 |
бетон,
0 |
0 / 0 / 0 Регистрация: 16.11.2015 Сообщений: 66 |
|
08.09.2020, 11:09 [ТС] |
3 |
Narimanych,
0 |
Narimanych 2630 / 1636 / 744 Регистрация: 23.03.2015 Сообщений: 5,141 |
||||||
08.09.2020, 11:55 |
4 |
|||||
бетон, Кликните здесь для просмотра всего текста
Файл прикрепил.Код запускается при открытии файла. Вложения
0 |
0 / 0 / 0 Регистрация: 16.11.2015 Сообщений: 66 |
|
08.09.2020, 14:14 [ТС] |
5 |
Narimanych,
0 |
2630 / 1636 / 744 Регистрация: 23.03.2015 Сообщений: 5,141 |
|
08.09.2020, 14:35 |
6 |
бетон, Добавлено через 9 минут
0 |
0 / 0 / 0 Регистрация: 16.11.2015 Сообщений: 66 |
|
08.09.2020, 15:33 [ТС] |
7 |
Narimanych,
0 |
2630 / 1636 / 744 Регистрация: 23.03.2015 Сообщений: 5,141 |
|
08.09.2020, 15:42 |
8 |
бетон,
открыл TEMP.docm
через разработчик запусти зачем?
Файл прикрепил.Код запускается при открытии файла.
выделил нужные файлы .doc прикрепите пару( если не секрет) Добавлено через 2 минуты
0 |
0 / 0 / 0 Регистрация: 16.11.2015 Сообщений: 66 |
|
08.09.2020, 15:56 [ТС] |
9 |
Narimanych,
0 |
0 / 0 / 0 Регистрация: 16.11.2015 Сообщений: 66 |
|
08.09.2020, 15:59 [ТС] |
10 |
Narimanych, вот шаблоны Word
0 |
0 / 0 / 0 Регистрация: 16.11.2015 Сообщений: 66 |
|
08.09.2020, 16:14 [ТС] |
11 |
в шаблонах присутствуют таблицы Добавлено через 13 минут Цитата
Сообщение от Narimanych обратил внимание что, код не запускается самостоятельно, а нужно дать команду из Разработчика или из Вид -Макросы
0 |
2630 / 1636 / 744 Регистрация: 23.03.2015 Сообщений: 5,141 |
|
08.09.2020, 17:16 |
12 |
бетон,
0 |
0 / 0 / 0 Регистрация: 16.11.2015 Сообщений: 66 |
|
08.09.2020, 19:24 [ТС] |
13 |
Narimanych, 1. открываю файл — запускается код
0 |
2630 / 1636 / 744 Регистрация: 23.03.2015 Сообщений: 5,141 |
|
08.09.2020, 20:26 |
14 |
бетон,
0 |
0 / 0 / 0 Регистрация: 16.11.2015 Сообщений: 66 |
|
08.09.2020, 20:51 [ТС] |
15 |
Narimanych,
0 |
0 / 0 / 0 Регистрация: 16.11.2015 Сообщений: 66 |
|
08.09.2020, 20:55 [ТС] |
16 |
принтер HP LaserJet M1120n MFP
0 |
2630 / 1636 / 744 Регистрация: 23.03.2015 Сообщений: 5,141 |
|
08.09.2020, 21:22 |
17 |
бетон, Миниатюры
0 |
2630 / 1636 / 744 Регистрация: 23.03.2015 Сообщений: 5,141 |
|
08.09.2020, 21:25 |
18 |
Вот место в коде, где сначала посылается на печать нечетная чясть листов, потом появляется мессаж и после нажатия ОК печатается четная… With D1 У меня на работе с вашими файлами работает.Дома — не имею возможности проверять…
0 |
0 / 0 / 0 Регистрация: 16.11.2015 Сообщений: 66 |
|
08.09.2020, 21:46 [ТС] |
19 |
Narimanych, ждал пока распечатает 3 мин — нет печати Добавлено через 6 минут
0 |
0 / 0 / 0 Регистрация: 16.11.2015 Сообщений: 66 |
|
10.09.2020, 17:34 [ТС] |
20 |
Narimanych,
0 |
IT_Exp Эксперт 87844 / 49110 / 22898 Регистрация: 17.06.2006 Сообщений: 92,604 |
10.09.2020, 17:34 |
20 |
title | keywords | f1_keywords | ms.prod | api_name | ms.assetid | ms.date | ms.localizationpriority |
---|---|---|---|---|---|---|---|
Window.PrintOut method (Word) |
vbawd10.chm157417917 |
vbawd10.chm157417917 |
word |
Word.Window.PrintOut |
63ea2dd2-5b3c-1239-16ce-1b4980cde3d3 |
06/08/2017 |
medium |
Window.PrintOut method (Word)
Prints all or part of the document displayed in the specified window.
Syntax
expression.PrintOut (Background, Append, Range, OutputFileName, From, To, Item, Copies, Pages, PageType, PrintToFile, Collate, FileName, ActivePrinterMacGX, ManualDuplexPrint, PrintZoomColumn, PrintZoomRow, PrintZoomPaperWidth, PrintZoomPaperHeight)
expression Required. A variable that represents a Window object.
Parameters
Name | Required/Optional | Data type | Description |
---|---|---|---|
Background | Optional | Variant | Set to True to have the macro continue while Microsoft Word prints the document. |
Append | Optional | Variant | Set to True to append the specified document to the file name specified by the OutputFileName argument. False to overwrite the contents of OutputFileName. |
Range | Optional | Variant | The page range. Can be any WdPrintOutRange constant. |
OutputFileName | Optional | Variant | If PrintToFile is True, this argument specifies the path and file name of the output file. |
From | Optional | Variant | The starting page number when Range is set to wdPrintFromTo. |
To | Optional | Variant | The ending page number when Range is set to wdPrintFromTo. |
Item | Optional | Variant | The item to be printed. Can be any WdPrintOutItem constant. |
Copies | Optional | Variant | The number of copies to be printed. |
Pages | Optional | Variant | The page numbers and page ranges to be printed, separated by commas. For example, «2, 6-10» prints page 2 and pages 6 through 10. |
PageType | Optional | Variant | The type of pages to be printed. Can be any WdPrintOutPages constant. |
PrintToFile | Optional | Variant | True to send printer instructions to a file. Make sure to specify a file name with OutputFileName. |
Collate | Optional | Variant | When printing multiple copies of a document, True to print all pages of the document before printing the next copy. |
FileName | Optional | Variant | The path and file name of the document to be printed. If this argument is omitted, Word prints the active document. (Available only with the Application object.) |
ActivePrinterMacGX | Optional | Variant | This argument is available only in Microsoft Office Macintosh Edition. For additional information about this argument, consult the language reference Help included with Microsoft Office Macintosh Edition. |
ManualDuplexPrint | Optional | Variant | True to print a two-sided document on a printer without a duplex printing kit. If this argument is True, the PrintBackground and PrintReverse properties are ignored. Use the PrintOddPagesInAscendingOrder and PrintEvenPagesInAscendingOrder properties to control the output during manual duplex printing. This argument may not be available to you, depending on the language support (U.S. English, for example) that you have selected or installed. |
PrintZoomColumn | Optional | Variant | The number of pages you want Word to fit horizontally on one page. Can be 1, 2, 3, or 4. Use with the PrintZoomRow argument to print multiple pages on a single sheet. |
PrintZoomRow | Optional | Variant | The number of pages you want Word to fit vertically on one page. Can be 1, 2, or 4. Use with the PrintZoomColumn argument to print multiple pages on a single sheet. |
PrintZoomPaperWidth | Optional | Variant | The width to which you want Word to scale printed pages, in twips (20 twips = 1 point; 72 points = 1 inch). |
PrintZoomPaperHeight | Optional | Variant | The height to which you want Word to scale printed pages, in twips (20 twips = 1 point; 72 points = 1 inch). |
Example
This example prints the current page of the active document.
ActiveDocument.PrintOut Range:=wdPrintCurrentPage
This example prints all the documents in the current folder. The Dir function is used to return all file names that have the file name extension «.doc».
adoc = Dir("*.DOC") Do While adoc <> "" Application.PrintOut FileName:=adoc adoc = Dir() Loop
This example prints the first three pages of the document in the active window.
ActiveDocument.ActiveWindow.PrintOut _ Range:=wdPrintFromTo, From:="1", To:="3"
This example prints the comments in the active document.
If ActiveDocument.Comments.Count >= 1 Then ActiveDocument.PrintOut Item:=wdPrintComments End If
This example prints the active document, fitting six pages on each sheet.
ActiveDocument.PrintOut PrintZoomColumn:=3, _ PrintZoomRow:=2
This example prints the active document at 75% of actual size.
ActiveDocument.PrintOut _ PrintZoomPaperWidth:=0.75 * (8.5 * 1440), _ PrintZoomPaperHeight:=0.75 * (11 * 1440)
See also
Window Object
[!includeSupport and feedback]
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Сообщений [ 3 ]
1 10.09.2010 10:04:00
- Vank
- майор
- Неактивен
- Откуда: Екатеринбург, с Урала мы.
- Зарегистрирован: 26.08.2010
- Сообщений: 65
- Поблагодарили: 2
Тема: Катастрофа+3 дня. Как создать макрос двусторонней печати.
Здравствуйте!
День назад, мне помогли с «неразрешимой» проблемой вызова панели печати…
wordexpert.ru/forum/viewtopic.php?id=444
Макрос, я создал и даже в благодарность, его создателю назвал им Богомолова (нет ну, а как ещё иначе?).
Даже вынес на ленту кнопочку, благо редактор ленты в новом W2010 это позволяет…
Но, нет в мире совершенства!
А нельзя ли создать такой макрос, что бы не вызывать панель печати, а сразу печатать с параметром двусторонняя печать?
То есть двусторонняя печать с ручной загрузкой нужна не всегда.
Есть же в этом переростке W2010 кнопка «печать всего документа».
Она печатает по умолчанию односторонне. Вот и сделать такую же, но двустороннюю с ручной загрузкой…
С уважением.
Отредактировано Vank (10.09.2010 10:09:46)
Stupid is as stupid does!
2 Ответ от bogomolov 10.09.2010 14:35:16
- bogomolov
- сержант
- Неактивен
- Зарегистрирован: 28.05.2010
- Сообщений: 16
- Поблагодарили: 1
Re: Катастрофа+3 дня. Как создать макрос двусторонней печати.
Vank
Макросы лучше называть не фамилиями, а по их назначению.
Интересующий тебя новый макрос будет выглядеть примерно так:
Sub FilePrintDuplex()
ActiveDocument.PrintOut ManualDuplexPrint:=True
End Sub
Последний параметр, кроме True может иметь также значения PrintOddPagesInAscendingOrder и PrintEvenPagesInAscendingOrder.
Все это можно узнать самостоятельно, если воспользоваться Help’ом.
Для примера: в редакторе VBA в тексте макроса поставь курсор на слове PrintOut и нажми F1. Получишь полный перечень всех параметров вывода на печать, в том числе и интересующего тебя дуплекса.
Отредактировано bogomolov (10.09.2010 14:35:50)
3 Ответ от Vank 14.09.2010 19:30:37
- Vank
- майор
- Неактивен
- Откуда: Екатеринбург, с Урала мы.
- Зарегистрирован: 26.08.2010
- Сообщений: 65
- Поблагодарили: 2
Re: Катастрофа+3 дня. Как создать макрос двусторонней печати.
bogomolov пишет:
Макросы лучше называть не фамилиями, а по их назначению.
Привет!
Нууу! Не знаю!
Каково назначение ступенчатой пирамиды из полированого гранита на Красной площади?
А написано «Ленин»
Ну, если настаиваешь, не буду писать Макрос Богомолов Forever
В смысле большущее спасибо за помощь!
Stupid is as stupid does!
Сообщений [ 3 ]
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Похожие темы
- макрос для печати
- Макрос для печати страниц
- Макрос печати для старого ПК
- макрос для постраничной печати в WORD
- Макрос для печати выделенного фрагмента.
- Макрос для печати с интервалом времени
- Макрос для быстрой печати текущей страницы
- Помогите создать макрос.
Катастрофа+3 дня. Как создать макрос двусторонней печати.
В своей деятельности вы наверняка пользуетесь таким мощным текстовым редактором, каким является Microsoft Word. На портале о Microsoft Office Word вы узнаете про: как редактировать списки в word по алфавиту.
И, конечно, если работа с текстами в Ворде составляет значительную долю вашего труда, вам приходила в голову мысль о том, как оптимизировать ее. На портале о Microsoft Office Word вы узнаете про: разные колонтитулы на разных страницах 2007.
Этот вопрос является приоритетным на форуме Ворд Экспер, посвященном работе с различными версиями программы. На портале о Microsoft Office Word вы узнаете про: как написать в экселе число в надсрочном формате.
Форум, прежде всего, ориентирован на написание разнообразных макросов и шаблонов для Ворда. Тут есть готовые решения той или иной задачи, разбираются различные пути. Наш сайт о Microsoft Office Word даст ответ про: как убрать в ворде знак кубиков.
Вы найдете все о макросах – от самых азов для новичков, до тонкостей, которыми делятся друг с другом опытные пользователи. На портале о Microsoft Office Word вы узнаете про: как поставить ударение в indesign cs5.
В одном из подразделов форума вы можете оставить описание своей проблемы и сделать заказ на разработку макроса или шаблона. На портале о Microsoft Office Word вы узнаете про: забыла пароль от документа ворд.
Конечно, автоматизация, не единственная тема форума. Здесь обсуждаются настройки различных версий Ворда и любые другие вопросы, связанные с самой программой, редактированием, написанием, рецензированием текстов в Ворде. На портале о Microsoft Office Word вы узнаете про: как подогнать размер таблицы по ширине страницы в ворде.
Самым часто возникающим проблемам посвящен отдельный раздел, который стоит посетить в первую очередь. На портале о Microsoft Office Word вы узнаете про: настройки интерфейса окна в программе word.
Если у вас есть чем поделиться с другими пользователями Ворда, вы можете выкладывать свои решения в соответствующих подразделах. На портале о Microsoft Office Word вы узнаете про: знак абзаца в word.
- Remove From My Forums
-
Question
-
Is it possible to set the ‘print both sides’ option on the new ‘File>Print’ screen in Word 2010 using VBA? I can’t use a API workaround as I don’t have the necessary permissions to change the properties of printer drivers. I have noticed that the wdDialogFilePrint
has a DuplexPrint argument, but I can’t make it work
All replies
-
Hi HileTroy,
Thanks for posting in the MSDN Forum.
It’s based on my experience that what you are looking for is the
Document.PrintOut Method . Set the ManualDuplexPrint variable to
true to print a two-sided document on a printer without a duplex printing kit.Also, take a look at this article.
HOWTO: Set Duplex Printing for Word Automation
Hope this can help you.
Best Regards,
Leo_Gao [MSFT]
MSDN Community Support | Feedback to us
-
That’s not exactly what I was after, I know how to set manual duplex, but the printer I’m sending the documents to is a duplex printer. What I’m trying to do is set real duplex so the user doesn’t have to turn the paper over and reload it. What I want
is for the macro I am writing to set the number of copies (done that, not a problem), set black-and-white or colour(also not a problem) and set duplex printing (problem) and for all this to happen in the background with no further user input or action. -
Hi HileTroy,
I will involve some experts who are familiar with this issue, and it may take some time. Much appreciate for your patience.
Best Regards,
Leo_Gao [MSFT]
MSDN Community Support | Feedback to us
-
Hi HileTrov
I have a couple of questions for clarification:
- You mention that you don’t have the necessary permissions to change the printer properties. Are you talking about changing the default settings under Control Panel Printer or even setting properties for the current document?
- If you go to File Print do you have the option(s) for «Print on Both Sides» (if you do you probably have one for «Flip pages on the long edge» and one for «Flip pages on the short edge»).
- Assuming you do have these option, if you manually choose one and print does it print duplex?
Duplex is a printer setting and is not exposed via the Word object model. That being said if you can successfully print in duplex mode from the «File Print» screen then you should be able to see the duplex property as described the article below.
HOWTO: Set Duplex Printing for Word Automation
http://support.microsoft.com/kb/230743?wa=wsignin1.0Best Regards,
Donald M.
Microsoft Online Community Support
———————————————————————————
Please remember to click «Mark as Answer» on the post that helps you, and to click «Unmark as Answer» if a marked post does not actually answer your question. This can be beneficial to other community members reading the thread. -
Hi Donald,
Thanks for posting the HowTo doc. This works perfectly in Word 2007, but I cannot make it work in Word 2010 and 2013. The macro is unable to read settings from the printer.
Do you know what has changed in Word 2010 since this isn’t working anymore? I’ve seen posts from other folks having the same problem…
Also, as a workaround I have tried to use:
Dialogs(wdDialogFilePrint).DuplexPrint = True
…however that also doesn’t work.
Any advise would be most appreciated!
Thanks!
Fredo
-
Hello,
I join the conversation and I hope it is not too late.
I have exactly the same problem as Fredo: I used the example given in
HOWTO: Set Duplex Printingfor Word Automation
but it didn’t work.To make it print, I replaced Printer. DeviceName by Printer (and before that, I wrote
Printer = Application. ActivePrinter and that worked fine).Finally, I obtain 2 pages with «This is on page 1», «This is on page 2» but not in duplex (on separate sheets of paper).
I hope you can help me, thanks !