PowerPointに貼り付けたExcelグラフのサイズを、VBAでピンポイントに調整したいというケースは少なくありません。
今回は、Excel VBAを使って、グラフを「図として貼り付けた後」にサイズを cm 指定で変更する方法を実装しましたので、実際のコードとあわせてご紹介いたします。
実現したいこと
- ExcelのグラフをVBAでPowerPointに貼り付け
- グラフのサイズを高さ5cm・幅8cmに指定して自動調整
- サイズは ポイント(pt)単位で指定する必要がある(1cm ≒ 28.35pt)
環境情報(動作確認済み)
- OS:Windows 10 Pro
- バージョン:20H2
- Excel / PowerPoint:Microsoft 365
使用したVBAコード
以下のコードを使うことで、指定されたテンプレートスライドにグラフを図として貼り付け、サイズを指定寸法に調整できます。
Sub ExportGraphToPowerPoint()
Dim ppApp As Object
Dim ppPres As Object
Dim ppSlide As Object
Dim ChartObj As ChartObject
Dim pptTemplatePath As String
Dim newFileName As String
Dim myShape As Object
Dim desiredWidth As Single
Dim desiredHeight As Single
' サイズをポイントに変換(1cm = 約28.35pt)
desiredWidth = 8 * 28.35 ' 幅8cm
desiredHeight = 5 * 28.35 ' 高さ5cm
' 保存ファイル名を日付付きで初期表示
Dim defaultFileName As String
defaultFileName = "\テンプレ_" & Format(Now, "yyyymmdd") & ".pptx"
' ファイル保存ダイアログを表示
newFileName = Application.GetSaveAsFilename( _
InitialFileName:=ThisWorkbook.Path & defaultFileName, _
FileFilter:="PowerPoint プレゼンテーション (*.pptx), *.pptx", _
Title:="保存先を選択してください")
If newFileName = "False" Then Exit Sub
' テンプレートファイルの相対パスを指定
pptTemplatePath = ThisWorkbook.Path & "\..\テンプレ.pptx"
' PowerPoint起動
Set ppApp = CreateObject("PowerPoint.Application")
ppApp.Visible = True
' テンプレートプレゼンテーションを開く
Set ppPres = ppApp.Presentations.Open(pptTemplatePath)
' Excelグラフ(名前: graph)をコピー
Set ChartObj = ThisWorkbook.Sheets(1).ChartObjects("graph")
ChartObj.Copy
' スライド1に図として貼り付け
Set ppSlide = ppPres.Slides(1)
Set myShape = ppSlide.Shapes.Paste
' サイズを指定寸法に変更(幅8cm × 高さ5cm)
myShape.Width = desiredWidth
myShape.Height = desiredHeight
' ファイルを保存
ppPres.SaveAs newFileName
' オブジェクト解放
Set myShape = Nothing
Set ppSlide = Nothing
Set ppPres = Nothing
ppApp.Quit
Set ppApp = Nothing
End Sub
サイズ変更に関するポイント
' 幅8cm、高さ5cmをポイントに変換して指定
desiredWidth = 8 * 28.35
desiredHeight = 5 * 28.35
myShape.Width = desiredWidth
myShape.Height = desiredHeight
この部分が、グラフのサイズをcm単位でコントロールしている箇所です。PowerPointは内部的に**ポイント単位(pt)**で位置やサイズを管理しているため、1cm ≒ 28.35pt に換算して設定します。
コード全体の流れ(要点整理)
- ファイル保存先と名前を選ばせる
- PowerPointテンプレート(事前に作成された.pptx)を開く
- Excelのグラフ(名前指定済み)をコピー
- PowerPointの1枚目のスライドにグラフを貼り付け
- 貼り付けたグラフを 指定サイズ(8cm × 5cm)に変更
- 指定した名前でプレゼンテーションを保存し、終了
まとめ
VBAを使えば、PowerPoint上のオブジェクトサイズをcm単位で正確に調整することができます。
- PowerPointは ポイント(pt)単位でサイズ・位置を管理
1cm ≒ 28.35pt
を元に必要なサイズを設定myShape.Width
とmyShape.Height
を使えば 画像やグラフを希望サイズにリサイズ可能
プレゼン資料を自動作成する際に、デザイン統一や視認性の向上に直結するテクニックです。
最後までお読みいただき、ありがとうございました。
スクールの紹介
【アイデミー】AIを学んで一発逆転のキャリアチェンジ!
最後に宣伝をさせてください。
夢見るAIエンジニアへ、今こそ一歩を踏み出せ!
最近、AI技術やデータサイエンスに興味を持ち始めたあなた。将来、AIエンジニアやデータサイエンティストとして活躍したいと考えているかもしれません。また、AIを使って業務課題や研究課題を解決したい、あるいは教養としてAIの知識を深めたいと思っている方もいるでしょう。
しかし、学び始めるとなると「どこから手をつけて良いのか分からない」「専門的すぎて理解できない」といった悩みが生じることも。そんなあなたのために、この3ヶ月間集中してAIプログラミングを習得するオンラインコーチングサービスがオススメです!
なぜこのサービスが選ばれるのか?その理由はこちら
- 初心者から上級者まで
完全なプログラミング初心者から研究者まで、幅広い方々に優良なコンテンツが提供されます。 - 徹底的な進捗管理
受講者の進捗をしっかりとチェックし、つまずきやすいポイントでのフォローが万全です。 - 専属メンターによる徹底サポート
AIの学び方から、実際の適用まで、専属のメンターが手厚くサポートします。 - 場所を選ばず学べるオンライン完結
東京以外の地域からも、気軽に学び始めることができます。
信頼の実績多数!
・日本最大級のプログラミングスクール実績
・受講者総数700名以上
・SaaS型学習サービス会員65,000名以上
・企業導入実績120社以上
・グッドデザイン賞受賞
・著名な賞受賞歴や経団連加盟も実現
夢を叶えるための第一歩を、一緒に踏み出しませんか?今なら、あなたもその一員として学び始めることができます!