XL: How to Copy Text to TextBoxes Using the Characters Method
ID: Q148815
|
The information in this article applies to:
-
Microsoft Excel for Windows, versions 5.0, 5.0c
-
Microsoft Excel for the Macintosh, versions 5.0, 5.0a
-
Microsoft Excel for Windows 95, version 7.0
-
Microsoft Excel 97 for Windows
SUMMARY
In a Microsoft Excel worksheet, you can use TextBox objects to add text
that is not limited by the boundary of a cell. You can also use text boxes
on dialog sheets and chart sheets when specially formatted text is
required.
The text string that is copied to or from a TextBox object has a 255-
character restriction when you use the Characters method in Visual Basic
for Applications. In other words, although a text box is capable of holding
approximately 2,000 characters, the text must be added in strings that are
no more that 255 characters in length. You can use the Sub procedures in
the "More Information" section of this article to work around this
restriction.
MORE INFORMATION
Microsoft provides programming examples 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. This article assumes that you are familiar with the programming
language being demonstrated and the tools used to create and debug
procedures. Microsoft support professionals can help explain the functionality
of a particular procedure, but they will not modify these examples to
provide added functionality or construct procedures to meet your specific
needs. If you have limited programming experience, you may want to contact
the Microsoft fee-based consulting line at (800) 936-5200. For more
information about the support options available from Microsoft, please see
the following page on the World Wide Web:
http://www.microsoft.com/support/supportnet/overview/overview.asp
The first Sub procedure (that is, TextBox_To_TextBox) demonstrates how
to copy text from one TextBox DrawingObject into another text box. The
second Sub procedure Cell_Text_To_TextBox, demonstrates a method that you
can use to copy the value of a range of cells into a text box.
The following Sub procedure copies the text from one text box on the active
sheet to another text box on the active sheet.
Sample Visual Basic Procedures
Sub TextBox_To_TextBox()
' Dimension the variables.
Dim x As Integer
Dim txtBox1 As TextBox, txtBox2 As TextBox
Dim theText As String
' Set txtBox1 and txtBox2 equal to the active sheet's TextBox
' objects. Replace the ordinal number with your TextBox names
' in quotes. For example: ActiveSheet.DrawingObjects("Text 1")
Set txtBox1 = ActiveSheet.DrawingObjects(1)
Set txtBox2 = ActiveSheet.DrawingObjects(2)
' Create a For-Next construct that loops until there is no more
' text in txtBox1.
For x = 1 To txtBox1.Characters.Count Step 250
' Place the first text box text into a variable called theText.
theText = txtBox1.Characters(start:=x, Length:=250).Text
' Place the value of theText variable into second text box.
txtBox2.Characters(start:=x, Length:=250).Text = theText
Next
End Sub
The following Sub procedure copies the values from a range of cells that
you specify into a text box on the active sheet.
Sub Cell_Text_To_TextBox()
' Dimension the variables.
Dim txtBox1 As TextBox
Dim theRange As Range, cell As Range
Dim startPos As Integer
' Set txtBox1 equal to the active sheet's TextBox object. You can
' replace the ordinal number with your text box name in quotes.
' For example: ActiveSheet.DrawingObjects("Text 1")
Set txtBox1 = ActiveSheet.DrawingObjects(1)
' Set a range on the active sheet equal to the range object text
' that you are interested in copying to the text box.
Set theRange = ActiveSheet.Range("A1:A10")
'Set the starting position for the text.
startPos = 1
' Create a For-Each construct to loop through the cells in the range.
For Each cell In theRange
' Populate the textbox with the cell values using the Characters
' method.
' Note: Chr(10) can be used to add a new line in the textbox for
' each cell.
txtBox1.Characters(start:=startPos, _
length:=Len(cell.Value)).Text = cell.Value & Chr(10)
' Update the startPos variable to keep track of where the next
' string of text will begin in the textbox.
startPos = startPos + Len(cell.Value) + 1
Next cell
End Sub
REFERENCES
For additional information about getting help with Visual Basic for
Applications, please see the following article in the Microsoft Knowledge
Base:
Q163435 VBA: Programming Resources for Visual Basic for Applications
Additional query words:
5.00c "characters method" "chr function" "textbox control" textboxes "text boxes"
Keywords : kbdta kbdtacode PgmHowto KbVBA
Version : MACINTOSH:5.0,5.0a; WINDOWS:5.0,5.0c,7.0
Platform : MACINTOSH WINDOWS
Issue type : kbhowto