簡體   English   中英

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至144,TxtBx144並不是最后一個框,但倒數第二個是TxtBx2。 因此,我嘗試通過使用1到145來解決它,並使用(i-1)序列命名該框,這有點不合邏輯。 我沒看錯的是什么錯?

您要做的是:

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

您想要的大小是20。

我不知道為什么您的文本框編號錯誤,但是您編寫的代碼實際上給了我0-143,而不是1-144,所以我懷疑有些代碼正在更改,我沒有提出這個問題或其他事情正在發生。

同樣,弄清楚如何編寫此類代碼的最簡單方法是記錄一個宏,執行您要完成的所有操作,停止該宏,然后查看代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM