XL: "Invalid Procedure Call" with SendKeys StatementLast reviewed: September 2, 1997Article ID: Q112864 |
The information in this article applies to:
SUMMARYThe 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.
WORKAROUNDTo 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 SubMicrosoft 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 engineers 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.
MORE INFORMATION
Steps to Reproduce BehaviorThe 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 SubHowever, if you run this procedure, your receive the error message "Run Time Error '5': Invalid Procedure Call."
|
Additional query words: 5.00 5.00c 7.00
© 1998 Microsoft Corporation. All rights reserved. Terms of Use. |