March 23, 2014

Excelのグラフのデータ範囲を拡張するマクロ

Excelでグラフを作った後に、データが増える場合がある。あるいは、元のデータが不定形で扱いにくい場合がある。こういう時は系列ごとに手作業でデータ範囲を設定するのは大変だ。
ということで、簡単に範囲を変更するためのマクロ。

使い方

  • グラフを選ぶ
  • マクロを実行する
全系列のデータ範囲が変更されている。

コード


Sub adjustChartdataRange()
'グラフのデータ範囲を拡張するマクロ
'使用方法:グラフを選ぶ→このマクロを実行する→データ範囲が変更されている。

    Dim targetSeries As Series
    
    Dim tmp As Variant
    Dim formulaParts As Variant
    
    Dim newValues As Range
    Dim newXValues As Range
    
    For Each targetSeries In ActiveChart.SeriesCollection
        With targetSeries
            '系列の数式から、セル範囲を切り出す
            tmp = Replace(.Formula, "=SERIES(", "")
            tmp = Left(tmp, Len(tmp) - 1)
            formulaParts = Split(tmp, ",")
            
            'Xデータ、Yデータの範囲を設定し直す。XデータはYデータにあわせて設定する。
            Set newValues = Range(Range(formulaParts(2)).Cells(1, 1), Range(formulaParts(2)).End(xlDown))
            Set newXValues = Range(Range(formulaParts(1)).Cells(1, 1), Range(formulaParts(1)).Cells(1, 1).Offset(newValues.Cells.Count - 1))
            
            .Values = newValues
            .XValues = newXValues
        End With
    Next
End Sub

No comments :

Post a Comment