Skip to main content

How to print double sided in Excel

VBA Duplex Printing in Excel 2010

In my previous post I have shown how to manually print duplex using Excel 2010.

Using VBA we can set the printer settings in duplex mode and print.

Microsoft engineers are kind enough to show some code on how we can achieve it.

The code sample on the links provided below is for Microsoft Word but it also works on Excel as well.

Here's the link: Set Duplex Printing via VBA

In the link above, there is an instruction on how to use the code.

Open Excel and click on Developer Tab. If Developer tab is not yet enable on your Excel.

The quick way to enter code is to right click on the name of the worksheet (like right click on "Sheet 1") and you will see "View Code".

Click on "View Code" and it will open up the Visual Basic editor.

The instruction on the Microsoft link above is to "Insert a Module".

Create or Insert a Module, then copy the code on the link above that starts with "Option Explicit

Public Type PRINTER_DEFAULTS up to the End Function".

The second code on the MS link, is not needed.

But the instruction on the link is needed, so create or insert a form and put a command button on the form.

I have tested this on a single worksheet with 4 pages and so far it works fine.

When I printed only 2 paper comes out with double sided print.

Double click on the command button to open up the code window.

Here's the code that will make use of the module inserted and set the printer to duplex mode.

SetPrinterDuplex "FujiPrinter", 2 'Set the printer name to one word

ActiveSheet.PrintOut From:=1, To:=4 'Print 4 pages from the active sheet

MsgBox "Print Done" 'Just an informative message that printing has been done

That's it you already have a VBA that can do a duplex printing, provided of course that printer specified supports duplex printing.

Click VBA label below  for more VBA tips..

Happy Coding!!! Cheers!!!


Free Android App with No Ads.

Excel Keyboard shortcuts guide

Android Divine Mercy Chaplet Guide 

Linux Android App cheat sheet:

Heaven's Dew Fall

Android Catholic Rosary App - Guide

Educational App for Android Kids:


  1. I have the Microsoft code controlling my printer driver the problem I have is that i can not control the "Print on both sides" button.

  2. I will try to recover the excel file with the VBA code to print double sided, I will share it with you

  3. Hi Shane, i found the workbook but don't know how to share it with you. :)

  4. Hi, Christopher Siguan

    Can u send it to


  5. I tried this code. It appears to work with Word documents, but Excel seems to keep the values last set manually in the worksheet.

  6. What do you mean Excel seems to keep the values last set manually? Do you mean that the printout of does not tally to the current values on your worksheet?

    Have you tried to display the values (like msgbox variable_value) before printing out?
    Because it could be that your desired output are not process.
    Printing should get whatever current values in your worksheet.

  7. No that is not what he means...
    Excel does keep the printer settings (per WorkSheet), and saves the information in the document. It might even be you will send this information to customers or suppliers when you send the document by email....
    Not funny.

    or (contains a registry edit to fix this)


Post a Comment

Popular posts from this blog

Copy a single file using robocopy

Copy a single file using robocopy from a local folder to a shared folder on the network.
A simple rule of thumb before any disaster strike, don't interchange the source and the destination.

If source and destination is mistakenly reverse, files might get overwritten. To avoid any loss of data do a test with a dummy file to ensure things work perfectly.
Robocopy [source][destination]   [file to be copied]
robocopy c:\local_c_folder  \\PC_network\shared_folder   file_to_be_copied_xx.txt
The command will be completed successfully provided the network access right has no issues.

Robocopy works quite good on large files. A simple copy or xcopy command will also work but the speed might vary.

However, if the file (ex. an ISO file) and is more than 4GB and the filesystem  of the thumbdrive or the storage is FAT system, then robocopy or any methods of copying will not work. Since FAT has a file size limitation of less than 3GB.

Robocopy is free it can be accessed from command line. No ne…

WMIC List printers

WMIC comes handy if you are a command line junkie.

To list printers via command line type:

wmic printer get name  = = = this will list all the printers installed on a workstation

To list the printer name and the port name of the printers, type this command:

wmic printer get name, portname

Type this command below to list the printer drivers:

wmic printer get name, drivername

To get the device id:

wmic printer get name, deviceid

You can deploy a batch file startup script to check which printer is installed on the computers and redirect the output to a shared folder.

PowerShell can also be used in conjunction with WMIC command:

To see more WMIC tips, click on WMIC label below.


Linux Android App cheat sheet:

WMIC get computer name

WMIC get computer model, manufacturer, computer name and  username.
WMIC is a command-line tool and that can generate information about computer model, its manufacturer, its username and other informations depending on the parameters provided.
Why would you need a command line tool if there’s a GUI to check?
If you have 20 or 100 computers, or even more. It’s quite a big task just checking the GUI to check the computer model and username.
If you have remote computers, you need to delegate someone in the remote office or location to check.
Or you can just write a batch file or script to automate the task.
Here’s the code below on how get computer model, manufacturer and the username.
Open an elevated command prompt and type:
wmic computersystem get "Model","Manufacturer", "Name", "UserName"
Just copy and paste the code above, the word “computersystem” does not need to be change to a computer name.
A sample output below will be generated if the co…