我有一個宏,它生成一個包含3列和動態行數的表。 第3列標記爲「趨勢」,宏創建向上,向下或向左指向的箭頭,但這些箭頭未與表分組。Powerpoint VBA表和對象對齊
在第三列中,宏在表格單元中垂直和水平居中插入「 - 」,這樣我就知道中心了,我必須在宏運行後重新對齊箭頭。
是否有代碼來確定「 - 」的x,y座標或確定將箭頭與第3列中每個單元格中間的箭頭對齊?行高度是動態的,取決於包含在同一行其他單元格中的文本數量。
我有一個宏,它生成一個包含3列和動態行數的表。 第3列標記爲「趨勢」,宏創建向上,向下或向左指向的箭頭,但這些箭頭未與表分組。Powerpoint VBA表和對象對齊
在第三列中,宏在表格單元中垂直和水平居中插入「 - 」,這樣我就知道中心了,我必須在宏運行後重新對齊箭頭。
是否有代碼來確定「 - 」的x,y座標或確定將箭頭與第3列中每個單元格中間的箭頭對齊?行高度是動態的,取決於包含在同一行其他單元格中的文本數量。
假設只有一個幻燈片「一」 2×2單元尺寸,表形和你的連字符是在細胞(2,2),比你要添加兩個參數:
Sub test()
Dim A, B
A = ActivePresentation.Slides(1).Shapes(1).Table.Cell(2,2).Shape.TextFrame.TextRange.Lines(1).BoundTop
B = ActivePresentation.Slides(1).Shapes(1).Top
Debug.Print A + B
ActivePresentation.Slides(1).Shapes.AddShape msoShapeRectangle, 100, A + B, 20, 20
End Sub
其中A + B是大約。你在找什麼。
既然您只使用「 - 」作爲定位輔助,那麼直接添加所需的形狀會不會更簡單?
簡單的例子,假設你已經選擇了一個表上的幻燈片1:
Dim oSh As Shape
Dim oNewSh As Shape
Set oSh = ActiveWindow.Selection.ShapeRange(1).Table.Cell(1, 2).Shape
Set oNewSh = ActivePresentation.Slides(1).Shapes.AddShape(msoShapeSmileyFace, oSh.Left, oSh.Top, oSh.Width, oSh.Height)
這充滿了笑臉細胞;相反,你需要使用oSh(它代表矩形的單元格形狀)的座標,並且可以做任何需要的數學運算來將它的形狀居中。
而不是使用「 - 」字符作爲佔位符,在其上放置一個Shape
箭頭,您可以簡單地使用特殊字符。
假設tblCell
已尺寸的外形和已被設置爲特定的細胞的.Shape
,那麼你可以做:
tblCell.TextFrame.TextRange.Text = ChrW(&H25B2) 'Up arrow
或:
tblCell.TextFrame.TextRange.Text = ChrW(&H25BC) 'Down arrow
然後對準它:
tblCell.TextFrame.TextRange.ParagraphFormat.Alignment = ppAlignCenter
我需要對齊(x,3)中創建的箭頭形狀。根據趨勢不同,行的大小會有所不同,具體取決於文本的數量。在表格單元格中居中放置一個形狀對象 – user1821321 2013-03-26 14:36:40
因此,您已經在答案中找到了模板,您只需根據自己的情況進行調整即可。對於水平對齊使用'BoundLeft'屬性。另外,如果需要,您可以使用標準的「寬度」和「高度」。 – 2013-03-26 14:40:38
Select Case Var(k,vRiskTrend)Case Trend_NoChange,Trend_Increasing,Trend_Decreasing Call AddRiskTrendArrow(CInt(Var,k,vRiskTrend)),BlackRGB,「」,_ TrendXBase,TrendYBase + TrendYAdj +((jj-1)* TrendYTableIncrement) 15) – user1821321 2013-03-26 15:19:39