Excel VBA: 如何更改文本框内的字体大小和对齐方式
Excel VBA: How do I change font size and alignment inside text boxes
我创建了一个文本框网格,但我想不出一种方法来更改命名文本框内文本的字体大小和对齐方式(垂直和水平居中)。
Sub addtxtbx()
Dim shp As Shape
Dim i As Integer, j As Integer, k As Integer
Dim cindx as long, rindx as long
For i = 1 To 145
Set shp = ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, _
100 + cindx, 100 + rindx, 50, 50)
cindx = (i - Int((i - 1) / 4) * 4 - 1) * 50 + Int((i - 1) / 48) * 200
rindx = (Int((i - 1) / 4) - Int((i - 1) / 48) * 12) * 50
With shp
.Name = "TxtBx" & (i - 1)
.Fill.ForeColor.RGB = RGB(204, 102, 255)
End With
Next i
With ActiveSheet.Shapes.Range(Array("TxtBx11")).TextFrame2.TextRange
.Characters.Text = "R"
End With
End Sub
此外,我一直在为 For Next 循环的 i 计数器挠头。我用它来重命名文本框,发现尽管使用i = 1 to 144,但TxtBx144不是最后一个框,而是倒数第二个,TxtBx2是第一个。因此,我尝试通过使用 1 到 145 来绕过它,并使用 (i-1) serial 命名该框,这有点逃避。我做错了什么没看到?
你要做的是:
shp.ShapeRange.TextFrame2.TextRange.Font.Size = 20
其中 20 是您想要的任何大小。
我不知道为什么你的文本框编号不正确,但你写的代码实际上给我的是 0-143,而不是 1-144,所以我怀疑你没有更改一些代码'不问问题或有其他问题。
此外,弄清楚如何编写此类代码的最简单方法是录制一个宏,执行您要完成的任何操作,停止宏,然后查看代码。
我创建了一个文本框网格,但我想不出一种方法来更改命名文本框内文本的字体大小和对齐方式(垂直和水平居中)。
Sub addtxtbx()
Dim shp As Shape
Dim i As Integer, j As Integer, k As Integer
Dim cindx as long, rindx as long
For i = 1 To 145
Set shp = ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, _
100 + cindx, 100 + rindx, 50, 50)
cindx = (i - Int((i - 1) / 4) * 4 - 1) * 50 + Int((i - 1) / 48) * 200
rindx = (Int((i - 1) / 4) - Int((i - 1) / 48) * 12) * 50
With shp
.Name = "TxtBx" & (i - 1)
.Fill.ForeColor.RGB = RGB(204, 102, 255)
End With
Next i
With ActiveSheet.Shapes.Range(Array("TxtBx11")).TextFrame2.TextRange
.Characters.Text = "R"
End With
End Sub
此外,我一直在为 For Next 循环的 i 计数器挠头。我用它来重命名文本框,发现尽管使用i = 1 to 144,但TxtBx144不是最后一个框,而是倒数第二个,TxtBx2是第一个。因此,我尝试通过使用 1 到 145 来绕过它,并使用 (i-1) serial 命名该框,这有点逃避。我做错了什么没看到?
你要做的是:
shp.ShapeRange.TextFrame2.TextRange.Font.Size = 20
其中 20 是您想要的任何大小。
我不知道为什么你的文本框编号不正确,但你写的代码实际上给我的是 0-143,而不是 1-144,所以我怀疑你没有更改一些代码'不问问题或有其他问题。
此外,弄清楚如何编写此类代码的最简单方法是录制一个宏,执行您要完成的任何操作,停止宏,然后查看代码。