パソコン仕事5倍塾
35,000人を指導した東大卒・元日本IBM社内講師が直伝
MENU
たかちゃんさんの投稿
(投稿ID: 4957)
Sub PowerPointTest() Dim ppApp As PowerPoint.Application Dim ppPrt As PowerPoint.Presentation Dim ppSld As PowerPoint.Slide Dim ppShape As PowerPoint.Shape 'グラフのタイトルを入力するシェイプ用 Dim todoufuken As String Dim gyo As Long 'Presentation1.pptxを開く(スライドが0枚の状態) Set ppApp = New PowerPoint.Application Dim path As String path = ThisWorkbook.path & "\Presentation1.pptx" ppApp.Visible = True Set ppPrt = ppApp.Presentations.Open(Filename:=path, ReadOnly:=msoFalse) For gyo = 3 To 49 Worksheets("form").Range("A3").Value = Worksheets("data").Range("A" & gyo).Value 'グラフのタイトル名 todoufuken = Worksheets("form").Range("B3").Value 'Excelでグラフを作成する為に範囲を選択、グラフ作成 Worksheets("form").Range("C1:J3").Select Worksheets("form").Shapes.AddChart2(381, xlSunburst).Select 'グラフのタイトルを非表示 Worksheets("form").ChartObjects(1).Chart.HasTitle = False 'グラフサイズを調整(ここで調整しないとグラフのデータラベル表示が欠けてしまう) Debug.Print Worksheets("form").ChartObjects(1).Chart.PlotArea.Height Debug.Print Worksheets("form").ChartObjects(1).Chart.PlotArea.Width Worksheets("form").ChartObjects(1).Height = 252.262504577637 Worksheets("form").ChartObjects(1).Width = 407.325050354004 Debug.Print Worksheets("form").ChartObjects(1).Chart.PlotArea.Height Debug.Print Worksheets("form").ChartObjects(1).Chart.PlotArea.Width 'グラフをコピー(画像として) Worksheets("form").ChartObjects(1).CopyPicture appearance:=xlScreen, Format:=xlPicture 'グラフを消去(要らないのでグラフは削除しておく) Worksheets("form").ChartObjects(1).Delete 'スライドを作成し、グラフの大きさを調整しスライドの中央に貼り付け Dim c As Long 'スライドのカウント用 'スライドの追加 c = ppPrt.Slides.Count Set ppSld = ppPrt.Slides.Add(Index:=c + 1, Layout:=ppLayoutBlank) 'グラフ(シェイプ)の貼り付け ppSld.Shapes.Paste 'シェイプの大きさを設定(拡大) ppSld.Shapes(1).LockAspectRatio = msoCTrue ppSld.Shapes(1).Width = 800 ' 'シェイプの大きさを調査 Debug.Print ppSld.Shapes(1).Name Debug.Print ppSld.Shapes(1).Width Debug.Print ppSld.Shapes(1).Height 'スライドの大きさを調査 Debug.Print ppPrt.PageSetup.SlideWidth Debug.Print ppPrt.PageSetup.SlideHeight 'シェイプを中央揃え ppSld.Shapes(1).Left = (ppPrt.PageSetup.SlideWidth - ppSld.Shapes(1).Width) / 2 ppSld.Shapes(1).Top = (ppPrt.PageSetup.SlideHeight - ppSld.Shapes(1).Height) / 2 'グラフのタイトルを入力する為、シェイプを作成し文字を入力 ppSld.Shapes.AddShape Type:=msoShapeRectangle, Left:=20, Top:=20, Width:=300, Height:=100 Set ppShape = ppSld.Shapes(2) ppShape.Fill.Visible = msoFalse ppShape.Line.Visible = msoFalse ppShape.TextFrame.TextRange.Characters.Font.Size = 60 ppShape.TextFrame.TextRange.Characters.Font.Color = vbBlack ' 日本語のフォントを設定するので、NameFarEastを使用。"HG 丸ゴシック M-PRO"は何故か使えない為明朝体を使用。 ppShape.TextFrame.TextRange.Font.NameFarEast = "MS 明朝" ppShape.TextFrame.TextRange.Text = todoufuken Next ppPrt.Save ppPrt.Close ppApp.Quit Set ppShape = Nothing Set ppSld = Nothing Set ppPrt = Nothing Set ppApp = Nothing End Sub
小川 慶一さんのコメント
(コメントID: 6996)
たかちゃんさんのコメント
(コメントID: 6997)
(コメントID: 6999)
Captcha:
たった1ヶ月で人生が劇的に変わりました
佐藤信さん
役員クラスの方から高い評価を受けるようになりました。
佐賀県 - 岩本徹さん
今までまったく知らなかったショートカットキーを使いまくっています。
東京都 - 鷹觜慶さん
年齢60才間近、営業で外回りの時間が多い私でも退社時間が1-2時間程度早くなりました。
東京都 - 宗内隆明さん
受講前もすでにパソコン得意でしたが、そんな私でも受講して本当に良かったと思えた講座です。
東京都 - 佐伯とも子さん
ここまで包括的に仕事に役立つ深い学びを受けれた講座は初めてでした
東京都 - 飯田倫子さん
2025年04月18日 09:15
2025年04月09日 07:21
2025年04月06日 09:31
2025年04月05日 16:12
2025年04月01日 08:46
2025年04月19日 19:19
2025年04月18日 09:16
2025年04月13日 06:10
2025年04月12日 13:37
2022年02月24日 10:59
表示できる投稿はありません。
この学習サイトの教材制作、サポート、システム開発をすべてやっています。
2022年02月02日 00:00
2022年02月02日 03:00
2022年02月02日 06:00
2022年02月02日 09:00
2022年02月02日 12:00
2025年04月15日 11:30
2025年04月08日 16:30
2025年04月07日 16:30
2025年04月04日 15:45
2025年03月27日 13:30
2025年02月04日 08:51
2025年02月03日 12:58
2024年11月27日 11:48
2024年11月25日 12:07
2024年11月17日 09:51
2025年03月26日 22:33
2025年03月26日 22:12
2025年03月24日 22:28
2025年03月19日 20:10
2025年03月18日 20:52
2025年04月16日 08:30
2025年03月18日 09:07
2025年03月18日 09:06
2025年03月15日 13:23
2025年02月26日 16:37
2025年04月02日 21:01
2025年04月02日 20:47
2025年04月02日 20:37
2025年04月01日 22:03
2025年04月01日 21:27
2025年04月16日 08:32
2025年03月18日 09:10
2025年03月18日 09:09
たかちゃんさんの投稿
(投稿ID: 4957)
パワーポイントにスライドに一気に張り付けるものを作成してみました。
このアイデアは以下の参考サイトからですが、コードは全て自力で書き上げました。(^^)
【参考サイト】
https://coconala.com/blogs/1312355/25743
パワーポイントは、色んな所に似たようなプロパティがあって苦労しました。
各プロパティの場所が分かるように、あえて纏めず書いているのでスッキリしていませんが
記念に投稿します。(Excel 2019動作確認済み)
小川 慶一さんのコメント
(コメントID: 6996)
すごいですね。
もはや、僕は、何とコメントしたらよいやら...。
> パワーポイントは、色んな所に似たようなプロパティがあって苦労しました。
プロパティについては microsoft.com で検索すると良い説明が見つかることがままあります。
たとえば以下は、「microsoft.com PageSetup.SlideWidth」でネット検索して検索結果に表示された上位2ページです。
https://docs.microsoft.com/ja-jp/office/vba/api/powerpoint.pagesetup.slidewidth
https://docs.microsoft.com/ja-jp/office/vba/api/powerpoint.pagesetup
ひきつづき、学習と実践をお楽しみください☆
たかちゃんさんのコメント
(コメントID: 6997)
ここまで上達出来たのは、この講座のおかげです!
本当にありがとうございます。感謝の気持ちでいっぱいです。
この先のWeb連携講座も楽しみです。
PowerPointを操作するには、直接PowerPointにコードを書き込む場合と
ExcelVBAからPowerPointを操作する場合がありますが、微妙に書き方が違う場合があることに
最初気づかず苦労しました。
例えば、このActiveWindow.SelectionってActiveなスライドって意味だろうから
ppSld.SlideRange~って書けるかな?→あれ、動かない。のようなパターンでハマりました。
ActiveWindow.Selection.SlideRange.Shape(1).select
> ひきつづき、学習と実践をお楽しみください☆
小川 慶一さんのコメント
(コメントID: 6999)
こちらこそ、楽しみにさせていただいてます。
> PowerPointを操作するには、直接PowerPointにコードを書き込む場合と
> ExcelVBAからPowerPointを操作する場合がありますが、微妙に書き方が違う場合があることに
> 最初気づかず苦労しました。
>
> 例えば、このActiveWindow.SelectionってActiveなスライドって意味だろうから
> ppSld.SlideRange~って書けるかな?→あれ、動かない。のようなパターンでハマりました。
> ActiveWindow.Selection.SlideRange.Shape(1).select
以下の記事あたり、参考になりそうです。
https://tonari-it.com/powerpoint-vba-selection-type/
https://docs.microsoft.com/ja-jp/office/vba/api/powerpoint.selection
https://docs.microsoft.com/ja-jp/office/vba/api/powerpoint.selection.type