| 
    
     |  | ▼ドカ さん: 
 >D列にデータがある場合について
 >(win7 office2003にて)
 >
 >D列とE列のデータを使って、折れ線グラフを2本書いたときは、グラフは移動しませんでした。
 
 そしたら、
 D列か、E列かでセル変更があったら、という条件に変えて、
 グラフの系列の数、ループして、変更のあった列がグラフ表示系列になっている
 系列だけ更新する----というのはどうでしょ
 
 
 Option Explicit
 
 Private Sub Worksheet_Change(ByVal Target As Range)
 Dim myCol As Long
 myCol = Target.Column
 Select Case myCol
 Case 4, 5
 Case Else
 Exit Sub
 End Select
 
 Dim r As Range, c As Range
 Dim zz As String, ss As String
 Dim diff As Double
 Dim Ser As Series
 
 With Me.ChartObjects(1)
 For Each Ser In .Chart.SeriesCollection
 zz = Ser.Formula   '現在の系列式
 ss = Split(zz, ",")(2)
 Set r = Me.Range(ss)  '元データ範囲
 If r.Column = myCol Then
 diff = r(r.Count).Top - .Top
 Set r = Excel.Range(r(1), _
 Cells(Me.Rows.Count, r.Column).End(xlUp)) '更新範囲
 Ser.Formula = Replace(zz, ss, r.Address(, , , True)) 'セット
 .Top = r(r.Count).Top - diff 'グラフ移動
 Exit For
 End If
 Next Ser
 End With
 End Sub
 
 |  |