[問題] VBA如何新增文字方塊到儲存格中間

作者: noworneverev (小朋友)   2018-02-18 11:35:41
軟體: Excel
版本: 2016
想用VBA來新增文字方塊到儲存格中間,目前寫到下面這樣:
Dim textbox As String
textbox = "A"
Dim rng As Range: Set rng = Application.Selection
Dim cel As Range
For Each cel In rng
With ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, cel.Left +
(cel.Width / 2) - 3, cel.Top - cel.Height, 50, 50)
.TextFrame.Characters.Text = textbox
.TextFrame.AutoSize = True
End With
Next cel
在預設列高的狀況下是沒什麼問題,
可是如果該列比較高的話,用Height來控制位置的話,新增的文字方塊就會跑掉位置
想請問有什麼解法呢?
感謝!
作者: soyoso (我是耀宗)   2018-02-18 11:59:00
將cel.height改減常數方式如https://i.imgur.com/vCtnYZL.jpg 測試是以減15原po要的置中是指https://i.imgur.com/HRrhPSX.jpg這樣嗎這是原文巨集碼在預設的列高16.5下所新增的文字方塊https://i.imgur.com/vgqXWuz.jpg 這是減常數的方式所產生的文字方塊,結果不是原po要的嗎?如是要以https://i.imgur.com/1HYmAjU.jpg h欄的結果的話則以(50*0.42-cel.height)/2因autosize,改以(21-cel.height)/2如有可能多行(如L欄)的話,則以https://i.imgur.com/84R33Oy.jpg

Links booklink

Contact Us: admin [ a t ] ucptt.com