Excelで作成したグラフをPowerPointの資料に貼り付けたいとき、毎回手作業でコピー&ペーストするのは手間ですよね。
今回は、VBAを使ってExcelからPowerPointへグラフを自動で貼り付ける方法を学びましたので、実際のコードと手順をご紹介いたします。
目次
実現したいこと
- Excelにある既存のグラフを、VBAを使ってPowerPointに貼り付ける
- テンプレートとなるPowerPointファイルを読み込み、その1枚目のスライドに貼り付け
- 将来的には、貼り付けたグラフのサイズや位置も制御予定
使用したVBAコード
以下が、Excel VBAからPowerPointへグラフを貼り付けるための基本的なコードです。
Sub ExportGraphToPowerPoint()
Dim ppApp As Object
Dim ppPres As Object
Dim ppSlide As Object
Dim ChartObj As ChartObject
' PowerPointアプリケーションを起動
Set ppApp = CreateObject("PowerPoint.Application")
ppApp.Visible = True
' PowerPointのテンプレートを開く
Set ppPres = ppApp.Presentations.Open("テンプレファイルがあるPATH") ' 例: "C:\Users\...\テンプレ.pptx"
' Excel側のグラフをコピー
Set ChartObj = ThisWorkbook.Sheets("シート名").ChartObjects("グラフ名")
ChartObj.Copy
' PowerPointの1枚目のスライドに貼り付け
Set ppSlide = ppPres.Slides(1)
ppSlide.Shapes.Paste
' PowerPointファイルを保存
ppPres.Save
' 使用したオブジェクトを解放
Set ppSlide = Nothing
Set ppPres = Nothing
ppApp.Quit
Set ppApp = Nothing
End Sub
補足ポイント
"テンプレファイルがあるPATH"の部分には、実際のファイルパスを入力してください
例:"C:\Users\user\Documents\テンプレ.pptx""シート名"はグラフがあるExcelのシート名、"グラフ名"はそのグラフオブジェクトの名前です
例:Sheets("分析").ChartObjects("SalesChart")
今後の拡張アイデア
今回のコードは、あくまで「貼り付ける」までを目的としたものです。
今後は以下のような処理も加えることで、より実用性が高まります。
- グラフのサイズや位置の指定(例:左端から100pt、幅を10cmに設定)
- 「図」として貼り付ける(
PasteSpecial)ことで、編集不可な状態にする - 複数スライドに複数グラフを自動配置する処理
- 保存ファイル名に日付をつけるなどの自動命名
まとめ
VBAを使えば、ExcelのグラフをPowerPointに貼り付ける作業を自動化することが可能です。
- グラフを手動でコピー&ペーストする手間を省略
- テンプレートを活用すれば、書式やデザインの統一も実現
- スライド作成作業の大幅な効率化につながる
プレゼン資料や定型レポートの自動作成にも活用できる非常に便利なテクニックです。
技術書の購入コストを抑えてスキルアップするなら

ここまで読んでいただきありがとうございます。最後に宣伝をさせてください。
プログラミングの技術書や参考書は、1冊3,000円〜5,000円するものも多く、出費がかさみがちです。Kindle Unlimitedであれば、月額980円で500万冊以上の書籍が読み放題となります。
気になる言語の入門書から、アルゴリズム、基本設計の専門書まで、手元のスマホやPCですぐに参照可能です。現在は「30日間の無料体験」や、対象者限定の「3か月499円プラン」なども実施されています。まずはご自身のアカウントでどのようなオファーが表示されるか確認してみてください。
