【VBA】Excelで作成したグラフをPowerPointに自動で貼り付ける方法

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円プラン」なども実施されています。まずはご自身のアカウントでどのようなオファーが表示されるか確認してみてください。

[Kindle Unlimited 読み放題プランをチェックする]

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次