Excelグラフの見た目を一括コピーする

データをまとめるときに、同じ書式や軸設定で複数のグラフを作りたくなるのですが、ひとつずつ設定していくとものすごく手間がかかりますよね。
かといって、グラフごとコピーして参照先を変えるのも面倒…

というわけでグラフを書式コピーする方法を探したところ、こんな方法があるようです。
www.nec-nexs.com
でも、この方法では複数のグラフを選択すると「形式を指定して貼り付け」が出てきません(白目
手順をマクロに記録してやると、どうやらこの「形式を指定して貼り付け」は

ActiveSheet.PasteSpecial Format:=2

に相当しているらしい。ということは

Public Sub グラフ書式を貼り付け()
    Application.ScreenUpdating = False
    Dim x As Object
    Dim xi As Object
 
    Set x = Selection
    If TypeName(x) <> "DrawingObjects" Then
        If Not ActiveChart Is Nothing Then
            ActiveSheet.PasteSpecial Format:=2
        End If
    Else
        For Each xi In x
            If TypeName(xi) = "ChartObject" Then
                xi.Select
                ActiveSheet.PasteSpecial Format:=2
            End If
        Next
    End If
 
    Set x = Nothing
    Application.ScreenUpdating = True
End Sub

これでOK。
手順は、

  • 元となるグラフをコピー(Ctrl+C)
  • 見た目を揃えたいグラフを選択(Ctrl+左クリック)
  • 上記のマクロを起動:マクロにショートカットキーを割り当ておくと便利

複数の選択されたグラフを一括処理する方法はこちらを参考にしました。
oshiete.goo.ne.jp
選択されているグラフがひとつの場合と複数の場合とで条件分岐して、複数の場合はxに格納しておいた選択されたグラフのリストからひとつずつ選択状態にしてPasteSpecialしています。

なお、

Chart.Paste Type:=xlPasteFormats

は、上手くいかなかったです…(Excel 2010)