我已經創建了一個文本框的網格,但我無法找出一種方法來更改文本內部文本的字體大小和對齊方式(集中垂直和水平方向)一個命名的文本框。Excel VBA:如何更改文本框內的字體大小和對齊方式
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到144,但TxtBx144不是最後一個盒子,但倒數第二個,TxtBx2是第一個。所以,我試着用1到145來解決它,並使用(i-1)序列來命名盒子,這是一個警察出局。我做錯了什麼,我沒有看到?
*工作表*上有144個文本框?爲什麼不使用單元格來輸入呢? –
@ mat'smug,我實際上有單元格,我需要將這些單元格複製爲圖片,將圖片粘貼到圖表對象中,並將圖表對象保存爲png。不幸的是,經過這麼多次運行後,我一直不得不增加睡眠時間(根據David Zemens的建議)以克服運行時錯誤。最終,它會達到一個點,沒有任何睡眠可以做到這一點,我不僅要關閉Excel,而且要重新啓動PC以使其再次運行。希望通過使用文本框來解決它。我可以使用一個盒子並調整字母間距......現在就試試。 – user110084
你將'.Name'設置爲'txtBx'與'i-1'連接,所以如果'i'可以是1到145,那麼'i-1'從0變到144.不知道那部分是不清楚。 –