ExcelVBAとPowerPointの連携パート2【シェイプのテキストを取得する】



The following two tabs change content below.
アバター

taka

あることがキッカケでVBAを独学で勉強しました、今ではブログを通してVBAでできることを解説しつつ、VBAや他の言語の勉強、ブログ運営の勉強をしています(^^♪

どうも、taka(@takabou63)です(^^♪

さて、前回はExcelVBAでPowerPointを操作してみたという記事でしたが、今回も同じジャンルです(笑)

今回は「シェイプのテキストを取得する」方法についてご紹介します!需要があるかは不明ですが(笑)

PowerPointにおけるシェイプとは?

さて、Excelなど操作しているうえで「シェイプ」という単語を1度くらい見たことがあるのではないでしょうか?

Excelでいうシェイプとは言わば「図形」のことを指し、VBAなどでもその操作をすることもできます。

PowerPointでいうシェイプも同じことで、主に図形やテキストボックスを操作することになります。ただ1つExcelと違うことは「PowerPointではシェイプしかない」という事、つまり「写真だろうが、グラフだろうがテキストボックスだろうがすべてPowerPointのスライド上にあればシェイプ」という事です。

ExcelVBAではセルの操作などがありましたが、PowerPointではシェイプ操作が主になります。

ExcelVBAでPowerPointの全スライドのシェイプのテキストを取得

はい、長いタイトルになってしまいましたが、「ExcelVBAでPowerPointの全スライドのシェイプのテキストを取得」してみようかなと思います(^^)/

まず上記のように適当にスライドにシェイプを置きます。このコードはテキストボックス以外でもシェイプであれば問題なく動作します!

スライドのシェイプのテキストを取得サンプルコード

今回作成したコードはPowerPointのスライドにあるシェイプを取得して、下記の画像のようにExcelに書き出すコードです。

少しテキトーに作成したので、万が一おかしな挙動がありましたらコメントか何かでお知らせください(;^ω^)

今回のコードはシェイプのみで、残念ながら「表」については対応しておりません。、表があるスライドがある場合にはエラーとなってしまいますのでご注意ください
Sub Sample()

   Dim pwpApp  As PowerPoint.Application
   Dim pppOp As PowerPoint.Presentation 'プレゼンテーション
   Dim prasld As PowerPoint.Slide 'スライド
   Dim shape As Variant 'シェイプ
   Dim i, cnt, a As Long 'そのほか

   ' PowerPointのインスタンスを作成。
   Set pwpApp = New PowerPoint.Application
   'PowerPointを表示する
   pwpApp.Visible = True
   'PowerPointのSampleプレゼンを開く
   Set pppOp = pwpApp.Presentations.Open("D:\Sampleプレゼン.pptx")
   Set pppr = pwpApp.ActivePresentation
   'プレゼンテーションのスライドの枚数を取得
    cnt = pppr.Slides.Count
    For i = 1 To cnt
    'スライドの枚数繰り返す
   Set prasld = pppr.Slides(i)
   
   a = 1
   Cells(i, 1).Value = "スライド" & i & "枚目の内容"
  'シェイプの個数繰り返す
  For Each shape In prasld.Shapes
   
   'スライドのすべてのシェイプ内のテキストを取得して書き出す
   a = a + 1
   Cells(i, a).Value = shape.TextFrame.TextRange.Text
    Next shape
  Next i

Set pwpApp = Nothing 'オブジェクトを開放
 

End Sub

 

フォロー・チャンネル登録お願いします

VBA以外についてのブログはこちら↓

https://yb-log.com/

■Twitterフォロー

■YouTubeチャンネル登録

ファイルやコードの利用、WEBサイトの利用について

サンプルコードなどは当サイトの免責事項をよくお読みになってからお使いください。

Sponsored Link

 

WordPressでブログを始めるなら

WordPress簡単インストール&安心の安定性

レンタルサーバー Xserver