차트의 속성을 반복해야하는 것처럼 보입니다. VBE의 지역 창을 사용하면 cht
변수의 다른 속성을 볼 수 있습니다. 이것은 포괄적 인 옵션 목록은 아니지만 시작하기에 충분해야합니다!
Sub ReplaceTextInChart()
Dim cObj As ChartObject
Dim cht As Chart
Dim ax As Axis
Dim legEnt As LegendEntry
Dim srs As Series
Dim str As String 'this variable will use to hold the various text of the chart.'
Dim strSearch As String
Dim strReplace As String
strSearch = "s" '<-- test that I used, modify as needed.'
strReplace = "##" '<-- test that I used, modify as needed.'
For Each cObj In ActiveSheet.ChartObjects
Set cht = cObj.Chart
With cht
'## Check if the chart has a title, if so, do the replace.'
If .HasTitle Then
str = .ChartTitle.Characters.Text
.ChartTitle = Replace(.ChartTitle, strSearch, strReplace)
End If
'## Check if the chart has a legend, if so, do the replace'
If .HasLegend Then
For Each legEnt In .Legend.LegendEntries
str = legEnt.Format.TextFrame2.TextRange.Characters.Text
legEnt.Format.TextFrame2.TextRange.Characters.Text = _
Replace(str, strSearch, strReplace)
Next
End If
For Each ax In .Axes
'## Check if each Axis has a Title, if so, do the replace'
If ax.HasTitle Then
str = ax.AxisTitle.Characters.Text
ax.AxisTitle.Characters.Text = Replace(str, strSearch, strReplace)
End If
Next
'## For each series, do the replace in series.name'
For Each srs In .SeriesCollection
str = srs.Name
srs.Name = Replace(str, strSearch, strReplace)
Next
End With
Next
End Sub
나는 생각한다. +1 –