※ これは 2017/8/7 に個人ブログへ投稿した内容を転記したものです。
データをまとめるときに、同じ書式や軸設定で複数のグラフを作りたくなるのですが、ひとつずつ設定していくとものすごく手間がかかりますよね。
かといって、グラフごとコピーして参照先を変えるのも面倒…
というわけでグラフを書式コピーする方法を探したところ、こんな方法があるようです。
「Excelの便利機能活用術」グラフ作成の「書式設定」を簡略化する|NECネクサソリューションズ
でも、この方法では複数のグラフを選択すると「形式を指定して貼り付け」が出てきません(白目
グラフ書式を貼り付けるマクロ
先ほどの手順をマクロに記録してやると、どうやらこの「形式を指定して貼り付け」は
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 + 左クリック)
- 上記のマクロを起動:マクロにショートカットキーを割り当ておくと便利
複数の選択されたグラフを一括処理する方法はこちらを参考にしました。
エクセルのマクロでアクティブシート内の選択した複数のグラフのみ軸の- その他(Microsoft Office) | 教えて!goo
選択されているグラフがひとつの場合と複数の場合とで条件分岐して、複数の場合は x
に格納しておいた選択されたグラフのリストからひとつずつ選択状態にして PasteSpecial
しています。
備考
ちなみに、
Chart.Paste Type:=xlPasteFormats
は、上手くいかなかったです…(Excel 2010