Visual Basic Code to Activate a Text Box for Editing (166144)



The information in this article applies to:

  • Microsoft Excel for Windows 5.0
  • Microsoft Excel for Windows 5.0c
  • Microsoft Excel for Windows 95
  • Microsoft Excel for Windows 95 7.0a
  • Microsoft Excel 97 for Windows
  • Microsoft Office 97 for Windows

This article was previously published under Q166144

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

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.

Modification Type:MinorLast Reviewed:9/13/2006
Keywords:kbcode kbinfo kbProgramming KB166144