|    | 
     ▼ドカ さん: 
 
>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 
 | 
     
    
   |