|
▼ichinose さん:
いつもお答えしていただきありがとうございます。
教えていただいたreplaceで出来ました。
参照元が固定ではないので、Splitを用い応用してみました。
但しグラフの値が""だけの線は選択時にエラーとなるなど
改善の余地ありです。(元のグラフが悪いのですが)
>▼SS さん:
>こんばんは。
>
>Formulaの中身が掲載されたような形式なら、
>
>Replace関数を使えばよいと思いますが・・・。
>
>with ActiveChart.SeriesCollection(j)
> .Formula =replace(.formula,"Sheet1","Sheet_Name")
> end with
>
>これで何か問題がありますか?
Sub test()
On Error Resume Next
Dim myarray() As String
Dim Sheet_Name As String
Dim i As Integer, j As Integer
'シート名の取得(置換え用)
Sheet_Name = ActiveSheet.Name
'シート内の全てのグラフへ対応
For i = 1 To ActiveSheet.ChartObjects.Count
ActiveSheet.ChartObjects.Item(i).Activate
'グラフ内の全ての線図に対応
For j = 3 To ActiveChart.SeriesCollection.Count
With ActiveChart.SeriesCollection(j)
'現状参照先の変化に対応
myarray() = Split(.Formula, "'")
'MsgBox myarray(0) & ", " & myarray(1) & ", " & myarray(2)
.Formula = Replace(.Formula, myarray(1), Sheet_Name)
End With
Next j
Next i
End Sub
|
|