2007年11月14日水曜日

第59回目 グラフ関係(その5;グラフのデータ系列を変更する)

○第59回目 グラフ関係(その5;グラフのデータ系列を変更する)

 データ系列の変更は簡単です。
 これまでやってきたことからのちょっとした改良です。
 実際の処理はこうなります。
 第57回のマクロで、既存のグラフのデータ系列をワークシートにとります。
 そこで必要な修正をします。
 そして、データ系列の範囲を指定してから始まります。データ系列はすべて指定してください。
 グラフは番号によって区分されています。その番号のデータ系列を新しいものに置き換えてやればいいことになります。
 グラフの追加と同じなのですが、追加の場合は、既存のグラフ番号の次からはじめますが、修正ですので、1からはじめ、既存の番号のところまで行います。
 第57回で。グラフを追加するメインの処理がありましたが、
  ActiveChart.SeriesCollection.NewSeries
  ActiveChart.SeriesCollection(g_cnt + i).ChartType = xlLine
  ActiveChart.SeriesCollection(g_cnt + i).Name = "=Sheet2!R28C5"
  ActiveChart.SeriesCollection(g_cnt + i).XValues = "=Sheet2!R29C3:R48C3"
  ActiveChart.SeriesCollection(g_cnt + i).Values = "=Sheet2!R29C5:R48C5"
 このうち、後半の三行を生かしてもらい、( )内を"i"だけに。、内容を取得した変数にします。
 そして、2007ように一文にします
 ActiveChart.SeriesCollection.item(i).Formula = _
 "=SERIES(" & x_sheet(i) & "!" & x_name(i) & "," & _
 x_sheet(i) & "!" & x_midashi(i) & "," & _
 x_sheet(i) & "!" & XX(i) & "," & Str(g_cnt + i) & ")"
 (注)エクセル2007では、座標はA1方式で大丈夫です。

 ほとんど、グラフの追加と同じになります。
 また、考え方を変えて、グラフ(のデータ系列)を全部削除してから、追加でもいいと思います。
 削除は、マクロの記録でとると、次のようになります
  ActiveChart.SeriesCollection(3).Select
  Selection.Delete
 一般化して、
  ActiveChart.SeriesCollection(i).Delete
 でいいでしょう。

0 件のコメント: