エクセルVBAで一括スムージング処理【散布図グラフ】

エクセルVBAで一括スムージング処理【散布図グラフ】

エクセルVBAで散布図グラフを一括スムージングする方法を紹介します。

手動で一つずつスムージング

手動で散布図グラフにスムージング処理を実施する場合は、グラフ上の系列を一つ選択し、『データ系列の書式設定』の『線』の項目の中の『スムージング』にチェックを入れます。

ただしこの方法では、グラフの中に複数の系列が入っており、そのすべてをスムージングしようとすると手間と時間がかかります。

そこで、別の方法で簡単に一括スムージング処理を行うやり方を紹介します。

グラフの種類の変更

グラフ上で右クリックし、右クリックメニューの『グラフの種類の変更』をクリックします。そして、『すべてのグラフタブ』の『散布図』の項目の中から『散布図(平滑線とマーカー)』の中に表示されているグラフをクリックします。

この方法を使うことで、一度にグラフの全ての系列にスムージング処理を施すことができます。

VBAを使う

サイドはVBAで一括スムージングする方法を紹介します。

下記のコードをエクセルの標準モジュールに追加して、プログラムを実行することでも散布図グラフの全ての系列のグラフをスムージングすることができます。

Sub smooth_graph()

    Dim i As Long
    Dim rc As Long
    rc = MsgBox("グラフをスムージングしますか?", vbYesNoCancel + vbQuestion, "グラフのスムージング処理")

    With ActiveChart
        If rc = vbYes Then
            For i = 1 To .SeriesCollection.Count
                .FullSeriesCollection(i).Smooth = True
            Next i
        ElseIf rc = vbNo Then
            For i = 1 To .SeriesCollection.Count
               .FullSeriesCollection(i).Smooth = False
            Next i
        End If
    End With
    
End Sub

上記のコードの中で、スムージング処理を行っているのが下記の箇所になります。

With ActiveChart
    .FullSeriesCollection(i).Smooth = True  ' スムージングを実行する
    .FullSeriesCollection(i).Smooth = False  ' スムージングを解除する
End With