You are currently offline, waiting for your internet to reconnect

Visual Basic Code to Activate a Text Box for Editing

This article was previously published under Q166144
Retired KB Content Disclaimer
This article was written about products for which Microsoft no longer offers support. Therefore, this article is offered "as is" and will no longer be updated.
In Microsoft Excel, you can use Visual Basic for Applications code toactivate a text box for editing. This article contains an example macrothat 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.
Microsoft provides examples of Visual Basic for Applications procedures forillustration only, without warranty either expressed or implied, including,but not limited to the implied warranties of merchantability and/or fitnessfor a particular purpose. The Visual Basic procedures in this article areprovided 'as is' and Microsoft does not guarantee that they can be used inall situations. While Microsoft Support professionals can help explain thefunctionality of a particular macro, they will not modify these examples toprovide added functionality, nor will they help you construct macros tomeet your specific needs. If you have limited programming experience, youmay want to consult one of the Microsoft Solution Providers. SolutionProviders offer a wide range of fee-based services, including creatingcustom 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 VisualBasic 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. Thecontents of the text box will not be removed, but they will be re-enteredby the macro, so you may see the contents briefly disappear and thenreappear. If the text box contains a large amount of text, it may takeseveral seconds or more for the text to reappear.

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

Article ID: 166144 - Last Review: 09/13/2006 03:04:45 - Revision: 2.3

  • Microsoft Excel 5.0 Standard Edition
  • Microsoft Excel 5.0c
  • Microsoft Excel 95 Standard Edition
  • Microsoft Excel 95a
  • Microsoft Excel 97 Standard Edition
  • Microsoft Office 97 Standard Edition
  • kbcode kbinfo kbprogramming KB166144