Step by Step Guide on Excel VBA Code for Print Preview

Microsoft Excel is a powerful tool that streamlines tasks and optimizes data analysis. Excel VBA (Visual Basic for Applications) takes Excel's capability a step further by automating tasks using programming language. This guide will focus on using Excel VBA code for print preview, a powerful feature that helps you visualize how your spreadsheet will look when printed.

Print preview saves you the trouble of having to print out your worksheet to see how it looks and make adjustments that can be time-consuming, especially if your worksheet is large. By writing VBA code to enable print preview, you can save a significant amount of time while ensuring that your printed document looks exactly how you want it to.

Key Takeaways

  • Excel VBA is a programming language that automates tasks in Excel.
  • Print preview is a powerful feature that allows you to see how your spreadsheet looks before you print it.
  • By writing VBA code to enable print preview, you can save time and ensure accurate printing.
  • VBA code can be tested and debugged to ensure efficient functionality.
  • Advanced VBA techniques like dynamic print areas can enhance your print preview capabilities.

What is Excel VBA?

Excel VBA (Visual Basic for Applications) is a powerful programming language that is built into Microsoft Excel. VBA code can be written to automate tasks and procedures in Excel, as well as interact with other applications and systems.

Using Excel VBA, you can create macros that can perform repetitive tasks with ease and efficiency. You can also add customized functionality to your spreadsheets that isn't available through the Excel interface.

Excel VBA utilizes a code editor that allows users to write, edit, and debug VBA code within Excel. This makes it easy to get started with automation and custom functionality for your spreadsheets.

"Excel VBA is an incredibly versatile language that can revolutionize the way you work with spreadsheets."

Understanding Print Preview in Excel

Print preview is a feature in Excel that allows you to view how your spreadsheet will look when printed. This feature is significant in ensuring the accuracy and layout of printed documents. The print preview feature provides users with a representation of the final version of the spreadsheet, taking into account factors such as margins, orientation, page breaks, and scaling. With the print preview option, you can adjust your document until it meets your requirements before printing.

When Excel is in print preview mode, only the items that are visible on the screen will show in the preview. This is vital in allowing you to visualize the exact appearance of the printed document. By using this feature, you can save your time and reduce errors, ultimately increasing your productivity.

Print Preview Functionality in Excel

In Excel, the print preview feature can be accessed by clicking on the "Print" command in the "File" menu or by pressing the "Ctrl" + "P" keys simultaneously. When you access the print preview functionality for the first time, you may have to change some settings before previewing it accurately. Excel allows you to change the orientation, margins, and page breaks by clicking on the "Page Setup" command in the "Page Layout" tab.

Printing Multiple Worksheets in Excel

Excel also allows you to preview and print multiple worksheets at once. By selecting multiple worksheets in print preview mode, you can view and edit them together in a single document. This feature is useful for worksheets that are linked and should be printed together. You can select multiple worksheets by holding down the "Ctrl" key while selecting them.

By using the print preview feature in Excel, you can ensure that your spreadsheet prints as you intend, without any cut off data, incorrect formatting, or other errors. It is easy to use and saves you time and stress by allowing you to preview and edit your document before printing.

Getting Started with Excel VBA

If you're new to Excel VBA, don't worry! The process of accessing the VBA editor is relatively simple. Here's a step by step guide to help you get started:

  1. Open the Excel workbook you want to work with.
  2. Press the Alt and F11 keys simultaneously. This will launch the VBA editor.
  3. On the left side of the VBA editor, you'll see the Project Explorer window. This window lists all of the open workbooks and the worksheets within each workbook.
  4. Next, click on the workbook you want to write code for. This will display the code window on the right side of the editor.
  5. You can now start writing VBA code! Don't worry if you're not sure where to start – we'll guide you through the process in the following sections.

It's worth noting that accessing the VBA editor in Excel for Mac is slightly different. Instead of pressing Alt and F11, you'll need to press Fn, Option, and F11.

Take a look at the image below for a visual representation of the steps:

Pro Tip: Keyboard shortcuts can help speed up your workflow. If you plan on using Excel VBA frequently, consider printing a keyboard shortcut cheat sheet to keep at your desk for quick reference.

Accessing the Print Preview Functionality

Now that you have enabled the VBA editor and are ready to start coding, the next step is to access the print preview functionality. This can be achieved by following these simple steps:

  1. Open your Excel workbook and enter into the VBA editor by pressing Alt + F11 or navigating to Developer > Visual Basic.
  2. In the VBA editor, click on Insert > Module to create a new module for your code.
  3. Enter the following code to enable print preview:


    Make sure to replace "SelectedSheets" with the name of the worksheet you wish to preview. You can also adjust other parameters, such as the print area and page setup, to customize the print preview according to your requirements.

  4. You can now execute the code by pressing F5 or by clicking on the "Run" button in the toolbar.
  5. The print preview window should now appear on your screen, displaying the current view of your worksheet as it would appear when printed.

By accessing the print preview functionality through Excel VBA, you can ensure greater accuracy and control over your printed documents, while streamlining the printing process for increased efficiency.

Writing VBA Code for Print Preview

Now that you understand the basics of Excel VBA and print preview functionality in Excel, it's time to start writing VBA code to enable print preview for your spreadsheets. Follow these step-by-step instructions to get started:

Step 1: Open the VBA Editor

To write VBA code for print preview, you'll need to access the VBA editor. To do this, press "Alt + F11" on your keyboard or navigate to "Developer" > "Visual Basic" in the Excel ribbon.

Step 2: Create a New Module

Once you're in the VBA editor, right-click on the "VBAProject" folder in the "Project" window and select "Insert" > "Module" to create a new module.

Step 3: Write the VBA Code

Now that you have a new module, you can start writing the necessary VBA code to enable print preview for your spreadsheets. Here's some example code to get you started:

Sub PreviewSheet()
End Sub

This code allows you to preview the currently active sheet in your workbook. If you want to preview a specific worksheet instead, simply replace "SelectedSheets" with the name of the sheet you want to preview.

Step 4: Test the VBA Code

Once you've written the VBA code, it's important to test and debug it to ensure it works as intended. To test the code, simply save the module you created and then run the macro within Excel by pressing "Alt + F8" on your keyboard and selecting the macro from the list.

Step 5: Customize the VBA Code

To customize the print preview functionality even further, you can add additional VBA code to specify settings such as page size, margins, and orientation. Here's an example of how to set the page orientation to landscape:

Sub PreviewSheet()
ActiveWindow.SelectedSheets.PageSetup.Orientation = xlLandscape
End Sub

By adding this code to your module, the print preview will automatically display in landscape orientation.

By following these simple steps and customizing the VBA code to fit your specific needs, you can utilize Excel VBA to streamline your print preview tasks and increase efficiency in your spreadsheet work.

Specifying Print Preview Settings

Customizing print preview settings in Excel VBA can greatly enhance your printing experience by ensuring that your worksheets are optimally laid out and fit to the page. Here, we will take you through a step-by-step guide on the different print preview settings that can be specified within the VBA code.

1. Setting the Print Area

The print area specifies the range of cells that will be printed, allowing you to select specific parts of your worksheet to print. To set the print area, use the following code:

ActiveSheet.PageSetup.PrintArea = "$A$1:$F$20"

Replace the A1:F20 with the desired range of cells for your print area.

2. Setting Margins and Orientation

You can also adjust the margins and orientation of your printed worksheet through VBA code. To set the margin size, use the following code:

ActiveSheet.PageSetup.TopMargin = Application.InchesToPoints(0.5)

This code sets the top margin to 0.5 inches. Similarly, you can specify the bottom, left, and right margins.

To set the orientation, use the following code:

ActiveSheet.PageSetup.Orientation = xlLandscape

This code sets the orientation to landscape mode. Alternatively, you can use xlPortrait to set the orientation to portrait mode.

3. Specifying Paper Size and Quality

VBA code can also be used to specify the paper size and quality for printing. Use the following code:

ActiveSheet.PageSetup.PaperSize = xlPaperLetter

This code sets the paper size to letter size. Available options include xlPaperA4, xlPaperLegal, xlPaperEnvelope11, and more.

You can also use the following code to specify print quality:

ActiveSheet.PageSetup.PrintQuality = 360

This code sets the print quality to 360 dots per inch. Change the value as per your requirements.

4. Setting Print Titles

Print titles are rows or columns that are repeated on each page of the printed worksheet. To set the rows and columns for the print title, use the following codes:

ActiveSheet.PageSetup.PrintTitleRows = "$1:$3"
ActiveSheet.PageSetup.PrintTitleColumns = "$A:$B"

Replace the 1:3 with the desired row range and A:B with the desired column range.

By specifying print preview settings, you can ensure that your Excel worksheets are printed the way you want them and save yourself time and paper. Try experimenting with these settings to see what works best for you!

Testing and Debugging the VBA Code

Now that you have written the VBA code for print preview, testing and debugging it is a crucial step to ensure its smooth functionality. Testing your code can help you catch any errors or bugs, which can save you from wasting time and effort later on. Debugging allows you to identify and troubleshoot any issues with the VBA code, such as syntax errors or logical flaws.

Step by Step Guide for Testing VBA Code

  1. Run the VBA code for print preview in Excel.
  2. Verify that the print preview appears as desired and is accurate.
  3. Try running the VBA code with different parameters and inputs to make sure it works under different scenarios.
  4. Manually test the VBA code to confirm that it works as intended.

It is important to run tests with different parameters to ensure the code is functioning as expected. Should any errors be detected, you can proceed to troubleshoot the code with debugging tools to identify and fix the errors.

Tips for Effective Debugging

  • Use breakpoints in the code to pause its execution at specific lines to observe its behavior.
  • Examine the values of variables at various stages of the code to locate issues.
  • Check the syntax of the code for any errors or inconsistencies.
  • Use error handling techniques to handle unexpected errors, such as Try-Catch statement.

By following these steps, you can ensure that your VBA code for print preview is effective, efficient, and error-free.

Automating Print Preview through Macros

If you want to save time and effort when previewing your Excel spreadsheets, automating the process through macros can be a game-changer. By following these steps, you can create a macro that enables print preview with just one click.

  1. Open the VBA editor and create a new module.
  2. Enter the VBA code to activate print preview:


  1. Save the macro and add a button to the Quick Access Toolbar for easy access.
  2. Test the macro by clicking the button and enjoying the streamlined print preview process.

By automating print preview with macros, you can significantly reduce the time and effort required to perform this essential task in Excel. The resulting efficiency can boost your productivity and simplify your workflow.

Enhancing Print Preview with Advanced VBA Techniques

In the previous sections, we covered the basics of Excel VBA for print preview, including accessing and customizing print settings, testing and debugging VBA code, and automating the print preview process with macros. In this section, we will explore advanced VBA techniques that can help you take your print preview capabilities to the next level.

Dynamic Print Areas

One advanced technique for print preview in Excel VBA is the use of dynamic print areas. This allows you to select the specific data range to be printed based on user input or other criteria.

Here is an example code snippet to create a dynamic print area:

'define the variables for print area

Dim PrintStart As Range

Dim PrintEnd As Range

'set the print start range to user input or cell location

Set PrintStart = Range("A1")

'set the print end range to dynamic calculation based on input or condition

Set PrintEnd = Range("B" & Application.WorksheetFunction.CountA(Range("B:B")))

'set the print area based on start and end range

ActiveSheet.PageSetup.PrintArea = PrintStart.Address & ":" & PrintEnd.Address

This code sets the print start range to cell A1 and the print end range to the last non-empty cell in column B. It then calculates the print area based on the start and end ranges, enabling dynamic printing of specific data ranges.

Page Setups

Another advanced technique for print preview in Excel VBA is the use of page setups to control the layout and formatting of printed documents. This includes settings such as margins, orientation, and headers/footers.

Here is an example code snippet to set the margin and footer for a printed document:

'set margin to 1 inch

ActiveSheet.PageSetup.LeftMargin = Application.InchesToPoints(1)

'add footer text including current date and page number

ActiveSheet.PageSetup.CenterFooter = "Printed on " & Format(Date, "mm/dd/yyyy") & " Page &P"

This code sets the left margin of the printed document to 1 inch and adds a footer with the current date and page number.

By combining dynamic print areas with page setups, you can create highly customized and dynamic print previews to meet your specific needs.

In the final section, we will provide a set of best practices for Excel VBA code for print preview to ensure efficient and reliable functionality.

Best Practices for Excel VBA Code for Print Preview

Writing efficient and reliable VBA code for print preview requires following a set of best practices. Here is a step by step guide to help you:

  1. Plan before you write: Before you start writing VBA code, take some time to plan and organize your approach. This means defining your goals and objectives, outlining the steps required to achieve them, and identifying any potential roadblocks or obstacles that may arise.
  2. Use meaningful names: When naming your variables, modules, and procedures, use clear, concise, and descriptive names that accurately reflect their purpose and function. This will make your code more readable and easier to maintain over time.
  3. Comment your code: Adding comments to your VBA code is essential for making it easier to understand and debug. Use comments to explain the purpose of each variable, module and procedure, and to outline the steps you are taking to achieve your objectives.
  4. Keep it modular: Break your VBA code down into smaller, more manageable modules that can be reused and repurposed as needed. This will make your code more efficient and easier to modify in the future.
  5. Avoid hardcoding: Instead of hardcoding values into your VBA code, use variables and constants to make it more flexible and adaptable. This will allow you to make changes easily without having to rewrite your code from scratch.
  6. Test thoroughly: Before deploying your VBA code, be sure to test it thoroughly to ensure that it works as intended. Use test data that simulates real-world scenarios and edge cases to identify and fix any bugs or errors.
  7. Maintain version control: Store multiple versions of your VBA code in a version control system, such as Git or Subversion. This will allow you to track changes over time and easily revert to previous versions if needed.

By following these best practices, you can write efficient, reliable, and maintainable VBA code for print preview in Excel.

Best Practices Description
Plan before you write Before writing VBA code, define your objectives and outline your approach.
Use meaningful names Name your variables, modules, and procedures descriptively to make your code more readable.
Comment your code Add comments to explain the purpose and steps of your code for easy understanding.
Keep it modular Break your VBA code into smaller modules for reusability and easy modification.
Avoid hardcoding Use variables and constants instead of hardcoding values to allow for easy modification.
Test thoroughly Test your VBA code with test data and real-world scenarios to ensure it works as intended.
Maintain version control Use version control systems to store and track multiple versions of your VBA code.


By now, you've seen how Excel VBA code for print preview can save you significant time and effort in your spreadsheet tasks. With this step by step guide, you can begin implementing automation in your work process today. Remember to follow best practices for efficient and reliable functionality.

Implementing automation in your work can be a game-changer, allowing you to focus more on your core tasks and less on repetitive manual work. So don't hesitate to explore more advanced VBA techniques and macros to take your print preview capabilities to the next level!

We hope this guide has been informative and helpful in getting you started on your Excel VBA journey. As always, if you have any questions or feedback, feel free to reach out to us. Happy coding!


What is Excel VBA?

Excel VBA stands for Visual Basic for Applications. It is a programming language that allows you to automate tasks in Excel and create customized solutions. With Excel VBA, you can write code to perform complex calculations, manipulate data, and interact with other applications.

Why is automation important in Excel?

Automation saves time and reduces errors by eliminating manual repetitive tasks. With Excel VBA, you can automate processes, such as generating reports, formatting data, and performing calculations, making your work more efficient and accurate.

What is print preview in Excel?

Print preview in Excel allows you to see how your spreadsheet will look when printed. It shows you the layout and formatting, enabling you to make necessary adjustments before actually printing the document. This helps ensure that your printed output matches your expectations.

How do I enable Excel VBA?

To enable Excel VBA, you need to access the VBA editor. Go to the "Developer" tab in Excel and click on "Visual Basic." This will launch the VBA editor where you can write and execute VBA code.

How do I access the print preview functionality in Excel VBA?

To access the print preview functionality in Excel VBA, you can use the `PrintPreview` method. This method allows you to display the print preview window, which shows you how your spreadsheet will look when printed.

How do I write VBA code for print preview in Excel?

Writing VBA code for print preview in Excel involves using the `PrintPreview` method along with other relevant code. You can specify the print area, page setup, and other settings to customize the print preview experience. By executing the VBA code, you can trigger the print preview window.

Can I customize print preview settings in Excel VBA?

Yes, you can customize print preview settings in Excel VBA. The VBA code allows you to specify various settings such as the number of copies, paper size, orientation, margins, and more. By tweaking these settings, you can achieve the desired print preview output.

How do I test and debug VBA code for print preview?

Testing and debugging VBA code for print preview involves analyzing code for logic errors, troubleshooting issues, and ensuring that the desired output is achieved. You can use breakpoints, watch variables, and step through the code to identify and fix any problems.

Can I automate print preview with macros in Excel?

Yes, you can automate print preview with macros in Excel. Macros allow you to record a series of actions and play them back, including accessing the print preview functionality. By creating and running macros, you can automate repetitive print preview tasks and save time.

Are there advanced VBA techniques for enhancing print preview in Excel?

Yes, there are advanced VBA techniques that can enhance print preview in Excel. For example, you can use dynamic print areas to automatically adjust the printing range based on the data in your spreadsheet. You can also customize page setups, create headers and footers, and apply other advanced formatting options.

What are the best practices for Excel VBA code for print preview?

When writing VBA code for print preview, it is recommended to follow best practices such as using meaningful variable names, organizing code into subroutines, and adding comments to explain your code. Additionally, it is important to test your code thoroughly and handle any potential errors gracefully.