You can either set or retrieve the formatting of text characters in a TextBox as follows:
Sub durall()
ActiveSheet.Shapes("TextBox 1").TextFrame.Characters.Font.ColorIndex = 3
End Sub
質問
I am trying to do two things in Excel 2013 using VBA:
I have tried two things:
'Copies text only. No formatting, but with proper line breaks
Dim txtContent As String
txtContent = Worksheets("TextBox").Shapes("TextBox1").TextFrame.Characters.Text
Worksheets("TextBox").Shapes("TextBox 3").TextFrame.Characters.Text = txtContent
The second approach was similar to above:
'Does not do anything. Produces Run-time error 91
Dim myFrame As TextFrame
myFrame = Worksheets("TextBox").Shapes("TextBox1").TextFrame
Worksheets("TextBox").Shapes("TextBox 3").TextFrame = myFrame
Please help.
解決 2
You can either set or retrieve the formatting of text characters in a TextBox as follows:
Sub durall()
ActiveSheet.Shapes("TextBox 1").TextFrame.Characters.Font.ColorIndex = 3
End Sub
他のヒント
Sub Tester()
CopyText ActiveSheet.Shapes("txtOne").TextFrame, _
ActiveSheet.Shapes("txtTwo").TextFrame
End Sub
Sub CopyText(tf1 As TextFrame, tf2 As TextFrame)
Dim n, f As Font
tf2.Characters.Text = tf1.Characters.Text
For n = 1 To tf1.Characters.Count
Set f = tf1.Characters(n, 1).Font
With tf2.Characters(n, 1).Font
.Bold = f.Bold
.Color = f.Color
.Italic = f.Italic
'add other properties as needed...
End With
Next n
End Sub