Microsoft KB Archive/112864

= "Invalid Procedure Call" with SendKeys Statement =

Article ID: 112864

Article Last Modified on 10/10/2006

-

APPLIES TO


 * Microsoft Excel 95 Standard Edition
 * Microsoft Excel 5.0 Standard Edition

-



This article was previously published under Q112864



SUMMARY
The error message "Run Time Error '5': Invalid Procedure Call" may be generated when you use the SendKeys statement in a Visual Basic procedure to send multiple spaces.



WORKAROUND
To work around this problem, use the Application.SendKeys statement in place of the SendKey statement, as demonstrated below: Sub SendKeysTest Application.SendKeys "{ 20}" 'There are 20 spaces before the number 20 End Sub Microsoft provides examples of Visual Basic for Applications procedures for illustration only, without warranty either expressed or implied, including, but not limited to the implied warranties of merchantability and/or fitness for a particular purpose. The Visual Basic procedures in this article are provided 'as is' and Microsoft does not guarantee that they can be used in all situations. While Microsoft support professionals can help explain the functionality of a particular macro, they will not modify these examples to provide added functionality, nor will they help you construct macros to meet your specific needs. If you have limited programming experience, you may want to consult one of the Microsoft Solution Providers. Solution Providers offer a wide range of fee-based services, including creating custom macros. For more information about Microsoft Solution Providers, call Microsoft Customer Information Service at (800) 426-9400.



Steps to Reproduce Behavior
The SendKeys statement in Visual Basic, Applications Edition, sends one or more key commands to the active window as if the they were typed at the keyboard. To specify repeating keys in the SendKeys statement, the syntax used is "{key number}" (without the quotation marks). A space must be placed between key and number. For example, {LEFT 42} means press the LEFT ARROW key 42 times and {h 10} means press h 10 times.

The following example should send 20 spaces to the active window: Sub SendKeysTest SendKeys "{ 20}" 'There are two spaces before the number 20 End Sub However, if you run this procedure, your receive the error message

Run Time Error '5': Invalid Procedure Call.

Additional query words: 5.00c XL

Keywords: kbprogramming KB112864

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.