Visual Basic Code to Activate a Text Box for Editing

Last reviewed: September 3, 1997
Article ID: Q166144
The information in this article applies to:
  • Microsoft Excel for Windows, versions 5.0, 5.0c
  • Microsoft Excel for Windows 95, versions 7.0, 7.0a
  • Microsoft Excel 97 for Windows

SUMMARY

In Microsoft Excel, you can use Visual Basic for Applications code to activate a text box for editing. This article contains an example macro that demonstrates how to perform this task.

NOTE: This example will not work in Microsoft Excel for the Macintosh, since the SendKeys method is not available on the Macintosh.

MORE INFORMATION

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 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.

To activate a text box for editing, enter the following code into a Visual Basic module:

    Sub ActivateTextBox()

       'Dimension variables.
       Dim xString As String

       'In this example, the name of the text box is "Text Box 1". You
       'can change this as required.
       ActiveSheet.TextBoxes("Text Box 1").Select

       'Store the contents of the text box in the variable xString.
       If Len(Selection.Text) > 0 Then
           xString = Selection.Text
       Else
           xString = ""
       End If

       'Use SendKeys to activate the text box, restore the original text,
       'and move to the beginning of the text box.
       Application.SendKeys (xString & "^{HOME}")

    End Sub

When you run this macro, "Text Box 1" will be activated for editing. The contents of the text box will not be removed, but they will be re-entered by the macro, so you may see the contents briefly disappear and then reappear. If the text box contains a large amount of text, it may take several seconds or more for the text to reappear.

You can use this technique in any Visual Basic macro. However, the SendKeys command must be the last line in the macro, or the text box may not be activated correctly.


Additional query words: XL7 XL5
Keywords : kbcode kbprg
Version : 5.0 5.0c 7.0 7.0a 97
Platform : WINDOWS
Issue type : kbinfo


THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.

Last reviewed: September 3, 1997
© 1998 Microsoft Corporation. All rights reserved. Terms of Use.