Excel VBA:如何更改文本框中的字体大小和alignment方式

我创build了一个文本框的网格,但我不能找出一个方法来改变文本内的文本的字体大小和alignment方式(集中垂直和水平)。

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计数器来抓我的头。 我用它来重命名文本框,发现尽pipe使用i = 1到144,TxtBx144不是最后一个框,但倒数第二,TxtBx2是第一个。 所以,我试图通过使用1到145来解决这个问题,并使用(i-1)序列来命名该盒子,这是一个警察出局。 我做错了什么,我没有看到?

你想要做的是这样的:

  shp.ShapeRange.TextFrame2.TextRange.Font.Size = 20 

其中20是任何你想要的大小。

我不知道为什么你的文本框被错误地编号,但你写的代码实际上是给我0-143,而不是1-144,所以我怀疑有一些代码改变我,你没有把问题或其他事情正在发生。

另外,弄清楚如何编写这样的东西的最简单的方法是logging一个macros,不pipe你试图完成什么,停止macros,然后看代码。