VBA中有些东西太难了。我希望我能在工作中使用Python!
我想添加一个文本框,它可以作为页脚,以便在粘贴特殊图像时与图表保持一致。
我可以用正确的内容在正确的工作表上创建文本框。
如何获取图表中的文本框,如标题和图例
Sub AddChartFooter()
'Chart Names
'WDLbyType
'Top5byLDU
'DurationbyLDU
Dim ws As Worksheet, s As Shape
Set ws = ThisWorkbook.Worksheets("Charts")
' Create label (height/width will be set by AutoSize).
Set s = ws.Shapes.AddTextbox(msoTextOrientationHorizontal, 10, 10, 100, 100)
s.TextFrame.Characters.Text = "Visualisations created by James Holiday-Scott"
' Resize text box to fit text.
s.TextFrame.AutoSize = True
End Sub
谢谢!
将图表和文本框分组。
类似的东西
ws.Shapes.Range(Array(ws.ChartObjects(1).Name, s.Name)).Group
图表对象有自己的形状集合。所以你可以在那里添加那个文本框。那么这些形状就包含在图表中了。
主要问题在于定位。以下示例将文本框添加到图表区域的左下角。
Sub AddChartFooter()
'Chart Names
'WDLbyType
'Top5byLDU
'DurationbyLDU
Dim cht As Chart, chtShp As Shape, s As Shape
' Get a chart shape
Set chtShp = ThisWorkbook.Worksheets("Charts").Shapes("WDLbyType")
If chtShp.HasChart Then
' Get the chart
Set cht = chtShp.Chart
' Create label (height/width will be set by AutoSize).
Set s = cht.Shapes.AddTextbox(msoTextOrientationHorizontal, 0, cht.ChartArea.Height, cht.ChartArea.Width, 0)
s.TextFrame.Characters.Text = "Visualisations created by James Holiday-Scott"
' Resize text box to fit text.
s.TextFrame.AutoSize = True
End If
End Sub