"Run-time error '9': Subscript out of range" error message when you use Visual Basic for Applications to search for and list available printers in Visio

This article was previously published under Q293921
This article has been archived. It is offered "as is" and will no longer be updated.
When you use Microsoft Visual Basic for Applications to search for and list available printers, you receive the following error message:
Run-time error '9':

Subscript out of range
No printer is defined on your computer.
If a local or network printer is available, you can add a printer to your system configuration. To do this, follow these steps:
  1. Click Start, point to Settings, and then click Printers.
  2. In the Printers folder, double-click Add Printer, and then follow the instructions in the wizard to install a printer.
Microsoft has confirmed that this is a problem in the Microsoft products that are listed at the beginning of this article.
The following code can be used to search and list the available printers.
Application.AvailablePrinters() (1)				
When there is no printer defined on your system, the code returns the error message that is mentioned in the "Symptoms" section of this article, instead of a string to inform you that no printers are defined.

If you omit the subscript altogether
you receive the following error message:
Compile error:

Expected :=
The following code, which attempts to address the active printer, returns the string "Display" when there is no printer defined:
VisioDev printer type mismatch expected print display list

Article ID: 293921 - Last Review: 12/06/2015 01:39:47 - Revision: 2.4

Microsoft Visio 2002 Standard Edition, Microsoft Visio 2002 Professional Edition

  • kbnosurvey kbarchive kbprinters kbtshoot kbbug kberrmsg kbnofix KB293921