Excel VBAを使って、ExcelグラフをPowerPointに貼り付ける際、編集可能なグラフではなく、「図(画像)」として貼り付けたいことはありませんか?
今回は、VBAを使って PowerPointのスライドにExcelグラフを「図形(PNG画像)」として貼り付ける方法を学びましたので、実際のコードとあわせてご紹介いたします。
実現したいこと
- Excelグラフをコピーして、PowerPointに図(画像)形式で貼り付けたい
- 通常の
.Pasteによる貼り付けではなく、編集不可の画像として貼り付けたい
方法:.PasteSpecial を使って図として貼り付ける
PowerPointの Shapes.PasteSpecial メソッドを使えば、コピーしたオブジェクトを特定の形式(図、テキストなど)で貼り付けることが可能です。DataType:=2 を指定することで、**PNG形式の図(メタファイル)**として貼り付けることができます。
変更前の貼り付けコード
Set ppSlide = ppPres.Slides(1)
Set myShape = ppSlide.Shapes.Paste
このままだと、グラフが編集可能な「埋め込みオブジェクト」として貼り付けられます。
変更後の貼り付けコード(図として貼る)
以下のように .PasteSpecial を使用することで、グラフが図(画像)形式で貼り付けられます。
' PowerPointの1番目のスライドに図として貼り付け
Set ppSlide = ppPres.Slides(1)
Set myShape = ppSlide.Shapes.PasteSpecial(DataType:=2) ' 2 は画像形式(PNG)
DataType の種類について
| データ型 | 定数 | 内容 |
|---|---|---|
| 1 | ppPasteDefault | 標準の貼り付け(編集可能) |
| 2 | ppPasteEnhancedMetafile | メタファイル(図)形式で貼り付け |
| 3 | ppPasteBitmap | ビットマップ画像として貼り付け |
| 4 | ppPasteGIF | GIF形式画像 |
一般的には、DataType:=2(Enhanced Metafile) が最も高品質かつ扱いやすいため推奨されます。
使用例全体(グラフコピー→図として貼り付け)
Sub PasteExcelChartAsImage()
Dim ppApp As Object
Dim ppPres As Object
Dim ppSlide As Object
Dim myShape As Object
' PowerPointを起動
Set ppApp = CreateObject("PowerPoint.Application")
ppApp.Visible = True
' 新しいプレゼンテーションを作成
Set ppPres = ppApp.Presentations.Add
' Excelグラフをコピー(グラフオブジェクトを選択済みと仮定)
ActiveSheet.ChartObjects(1).Chart.Copy
' 1番目のスライドに図として貼り付け
Set ppSlide = ppPres.Slides(1)
Set myShape = ppSlide.Shapes.PasteSpecial(DataType:=2)
' 位置調整(任意)
myShape.Left = 100
myShape.Top = 50
End Sub
まとめ
PowerPointにExcelのグラフを「図」として貼り付けるには、.PasteSpecial メソッドを使うのが最も確実な方法です。
DataType:=2を指定することで、編集不可な画像として挿入.Pasteよりもレイアウト崩れや編集リスクを回避可能- プレゼン資料の安定性向上にも有効
技術書の購入コストを抑えてスキルアップするなら

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