| 
    
     |  | ▼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
 
 
 |  |