Excelで複数のグラフを作成していると、
「毎回同じデザインを手動で整えるのが面倒…」
「会社や部署でグラフのスタイルを統一したい…」
と感じたことはありませんか?
そんなときに便利なのが、**グラフテンプレート(.crtxファイル)**の活用です。
VBAを使えば、テンプレートの保存と一括適用が可能になります。
この記事では、テンプレートの作り方からVBAでの適用方法まで、
初心者にもわかりやすく解説します。
1. グラフテンプレートとは?
グラフテンプレート(拡張子:.crtx)とは、
「グラフのデザイン設定(色・フォント・凡例・線の太さなど)」を保存したファイルのことです。
テンプレートを使うことで、次のようなメリットがあります。
- グラフの見た目を統一できる
- 毎回の書式設定作業を省ける
- 他のブックやプロジェクトでも再利用できる
2. 手動でグラフテンプレートを作成する手順
まずは、Excel上でテンプレートファイルを作成しておきます。
- デザインを整えたグラフを右クリック
- 「テンプレートとして保存」を選択
- ファイル名を付けて保存(例:
MyChartStyle.crtx)
保存先は通常、次のフォルダに格納されます。(環境によっては異なる場合あり)
C:\Users\<ユーザー名>\AppData\Roaming\Microsoft\Templates\Charts
💡この.crtxファイルを他のPCにコピーすれば、
他の環境でも同じデザインを再現できます。
3. VBAでテンプレートを適用する構文
VBAでは、以下のように Chart.ApplyChartTemplate メソッドを使ってテンプレートを適用します。
With ActiveSheet.ChartObjects(1).Chart
.ApplyChartTemplate "C:\Users\<ユーザー名>\AppData\Roaming\Microsoft\Templates\Charts\MyChartStyle.crtx"
End With
この1行で、テンプレートに保存された色・フォント・スタイルなどを
瞬時に反映できます。
4. 複数グラフに一括適用する方法
同じデザインを複数のグラフに反映したい場合は、For Each構文を使って一括でテンプレートを適用できます。
Sub ApplyTemplateToAllCharts()
Dim ws As Worksheet
Dim co As ChartObject
Dim templatePath As String
'テンプレートファイルのパスを指定
templatePath = "C:\Users\<ユーザー名>\AppData\Roaming\Microsoft\Templates\Charts\MyChartStyle.crtx"
Set ws = ActiveSheet
For Each co In ws.ChartObjects
co.Chart.ApplyChartTemplate templatePath
Next co
MsgBox "すべてのグラフにテンプレートを適用しました。"
End Sub
これにより、シート内の全てのグラフに同じスタイルを一括で適用できます。
報告資料や定例レポートで、統一感のある見た目を実現できます。
5. 会社・チームで使い回す方法(共有運用)
複数人で同じテンプレートを使う場合は、
共通フォルダやネットワークドライブにテンプレートを配置します。
templatePath = "\\ServerName\Share\Templates\MyChartStyle.crtx"
これにより、チーム全員が同じテンプレートを利用でき、
社内資料のデザインを標準化することが可能です。
6. 応用:グラフ作成と同時にテンプレートを適用する
新しいグラフを作成した際に、最初からテンプレートを適用することもできます。
Sub CreateChartWithTemplate()
Dim ws As Worksheet
Dim co As ChartObject
Dim templatePath As String
templatePath = "C:\Users\<ユーザー名>\AppData\Roaming\Microsoft\Templates\Charts\MyChartStyle.crtx"
Set ws = ActiveSheet
'グラフを作成
Set co = ws.ChartObjects.Add(Left:=100, Top:=50, Width:=400, Height:=300)
With co.Chart
.SetSourceData Source:=ws.Range("A1:B6")
.ChartType = xlColumnClustered
'テンプレートを適用
.ApplyChartTemplate templatePath
End With
End Sub
これにより、最初から整ったデザインでグラフを作成できます。
7. まとめ
| 操作内容 | 使用メソッド | 説明 |
|---|---|---|
| テンプレートを適用 | .ApplyChartTemplate | デザインを反映 |
| グラフ作成時に適用 | .ApplyChartTemplate + .SetSourceData | 作成直後に整形 |
| 一括適用 | For Eachループ | シート全体に適用 |
| 共有利用 | ネットワークパス指定 | 社内共通テンプレート化 |
💡ポイント
.crtxファイルを保存しておけば、他のPCでも同じ見た目を再現できる- VBAで
.ApplyChartTemplateを使えば、一瞬で統一感あるグラフを作成可能 - 共通テンプレートを活用すれば、社内資料のクオリティを均一化できる
コメント