我是Visual Basic的新手,我想要处理一些简单的事情。
我有按钮和TextBox
按钮:
Private Sub CommandButton1_Click()
TextBox1.Text = "Hi my name is Koki"
End Sub
文本框:
Private Sub TextBox1_Change()
End Sub
输出:
注意:即使有静态解决方案,它也会对我有帮助,例如Html中的<span></span>
答案 0 :(得分:1)
在处理VBA时,您必须考虑范围,然后考虑给定范围的属性。这里有一个示例代码,可以满足您的需求:
Private Sub CommandButton1_Click()
Set Object = ActiveDocument.Shapes.AddTextbox(Orientation:=msoTextOrientationHorizontal, Left:=10, Top:=10, Width:=80, Height:=80)
With Object.TextFrame.TextRange
.Text = "Hi my name is Koki"
With .Characters(2).Font
.ColorIndex = wdTurquoise 'http://msdn.microsoft.com/en-us/library/office/aa195611(v=office.11).aspx
End With
With .Characters(12).Font
.ColorIndex = wdTurquoise
End With
With .Characters(18).Font
.ColorIndex = wdTurquoise
End With
End With
End Sub
正如您所看到的,我在开始时添加了文本框。我这样做是为了确保你使用正确的textBox(如果你添加一个ActiveX文本框,行为会有所不同)。
---------- UPDATE
为了依赖提议的方法,您可能必须使用Document Open事件删除任何形状并编写所需的形状。例如:
Private Sub Document_Open()
For i = ActiveDocument.Shapes.Count To 1 Step -1
ActiveDocument.Shapes(i).Delete
Next i
Set Object = ActiveDocument.Shapes.AddTextbox(Orientation:=msoTextOrientationHorizontal, Left:=10, Top:=10, Width:=80, Height:=80)
End Sub
打开文档时将调用此代码,并删除您创建的所有形状(不是ActiveX对象,如commandButton)并添加文本框。您可以全局声明Object
变量,并从代码中的任何位置访问它(例如CommandButton1_Click()
)。
请记住,这是获取所需内容的变通方法示例。您不需要删除给定的形状,您可以使用此代码检查文档开头处的操作:如果有一个名为“我想要的名称”的形状,请将其放在那里,不要做任何事情,只需将其设置为全局Object
变量,即:
Private Sub Document_Open()
For i = ActiveDocument.Shapes.Count To 1 Step -1
If(ActiveDocument.Shapes(i).Name = "the name I want") Then
Set Object = ActiveDocument.Shapes(i)
Exit Sub
End If
Next i
Set Object = ActiveDocument.Shapes.AddTextbox(Orientation:=msoTextOrientationHorizontal, Left:=10, Top:=10, Width:=80, Height:=80)
End Sub