環境
Windowsの仕様
エディション:Windows 10 Pro
バージョン:20H2
経緯
PowerPointに貼り付けたエクセルのグラフのサイズを変えたくて、
今回、勉強しました。
コード
PowerPointのスライド上でオブジェクトのサイズを特定の値(この場合、高さ5cm、幅8cm)に設定するには、VBAでHeightとWidthプロパティを指定したサイズに変更します。PowerPointでは、これらのプロパティはポイント単位で指定されます。1cmは約28.35ポイントに相当します。
では、コードです。
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.35ポイント)
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
' 現在のExcelファイルのパスを基準に相対パスを設定
pptTemplatePath = ThisWorkbook.Path & "\..\テンプレ.pptx"
' PowerPointアプリケーションの開始
Set ppApp = CreateObject("PowerPoint.Application")
ppApp.Visible = True
' PowerPointテンプレートの開く
Set ppPres = ppApp.Presentations.Open(pptTemplatePath)
' Excelグラフのコピー
Set ChartObj = ThisWorkbook.Sheets(1).ChartObjects("graph")
ChartObj.Copy
' PowerPointの1番目のスライドに貼り付け
Set ppSlide = ppPres.Slides(1)
Set myShape = ppSlide.Shapes.Paste
' グラフのサイズを指定された寸法に調整
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
長々書きましたが、グラフのサイズの部分は以下のところです。
Dim desiredWidth As Single
Dim desiredHeight As Single
' サイズをポイントに変換(1cm = 28.35ポイント)
desiredWidth = 8 * 28.35 ' 幅8cm
desiredHeight = 5 * 28.35 ' 高さ5cm
〜〜〜
' グラフのサイズを指定された寸法に調整
myShape.Width = desiredWidth
myShape.Height = desiredHeight
という感じでできました。
グラフサイズと関係ないコードの説明は
まず、保存先を決めて、ファイル名を決めています。
次に、テンプレパワポファイルがあるので、それを開いて、グラフを貼っている。
という流れです。
参考になれば、幸いです。
ここまで読んでいただきありがとうございました。
スクールの紹介
【アイデミー】AIを学んで一発逆転のキャリアチェンジ!最後に宣伝をさせてください。
夢見るAIエンジニアへ、今こそ一歩を踏み出せ!
最近、AI技術やデータサイエンスに興味を持ち始めたあなた。将来、AIエンジニアやデータサイエンティストとして活躍したいと考えているかもしれません。また、AIを使って業務課題や研究課題を解決したい、あるいは教養としてAIの知識を深めたいと思っている方もいるでしょう。
しかし、学び始めるとなると「どこから手をつけて良いのか分からない」「専門的すぎて理解できない」といった悩みが生じることも。そんなあなたのために、この3ヶ月間集中してAIプログラミングを習得するオンラインコーチングサービスがオススメです!
なぜこのサービスが選ばれるのか?その理由はこちら
- 初心者から上級者まで
完全なプログラミング初心者から研究者まで、幅広い方々に優良なコンテンツが提供されます。 - 徹底的な進捗管理
受講者の進捗をしっかりとチェックし、つまずきやすいポイントでのフォローが万全です。 - 専属メンターによる徹底サポート
AIの学び方から、実際の適用まで、専属のメンターが手厚くサポートします。 - 場所を選ばず学べるオンライン完結
東京以外の地域からも、気軽に学び始めることができます。
信頼の実績多数!
・日本最大級のプログラミングスクール実績
・受講者総数700名以上
・SaaS型学習サービス会員65,000名以上
・企業導入実績120社以上
・グッドデザイン賞受賞
・著名な賞受賞歴や経団連加盟も実現
夢を叶えるための第一歩を、一緒に踏み出しませんか?今なら、あなたもその一員として学び始めることができます!