|
▼ドカ さん:
>E列の下に向かってデータを追加しています。
>データが追加される度に、その隣に書いてあるグラフも下に移動するようにしたいです。
面白そうだったので、ぼくもトライしてみました。
1.まず、セルの(E列の)値が変化したときに、何か処理をするには
シートのChangeイベントを拾って操作します。
2.E列のセルに入力(または値クリア)があったとき、新しいデータ範囲を
グラフの系列1に書き込むには 系列式の中の値軸部分を変更してやります。
3.グラフの移動は 更新前の元データ範囲の最終セルのTop座標と
グラフのTopとの差(diff) をおぼえておき、更新後の最終セルから
更新後のグラフ位置を算出して移動します。
'------------- 以下を対象シートのシートモジュールに書いてください
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 5 Then Exit Sub
Dim r As Range, c As Range
Dim zz As String, ss As String
Dim diff As Double
With Me.ChartObjects(1)
zz = .Chart.SeriesCollection(1).Formula '現在の系列式
ss = Split(zz, ",")(2)
Set r = Me.Range(ss) '現在の元データ範囲
diff = r(r.Count).Top - .Top
Set r = Excel.Range(r(1), r(1).End(xlDown)) '更新範囲
.Chart.SeriesCollection(1).Formula = _
Replace(zz, ss, r.Address(External:=True)) 'セット
.Top = r(r.Count).Top - diff ' グラフ移動
End With
End Sub
|
|