• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:アウトラインに表示されている文字 取得したいのです)

PowerPoint VBAでアウトラインのタイトルのみ取得する方法

このQ&Aのポイント
  • PowerPoint VBAを使用して、アウトラインのタイトルのみを取得する方法について説明します。
  • アウトラインのタイトルのみを取得するために、ActiveWindow.Selection.SlideRange.Shapesを使用します。
  • 具体的なコードの例として、For Eachループを使用してアウトライン内のすべてのスライドを処理し、その中でActiveWindow.Selection.SlideRange.Shapesを使用して各スライド内のテキストボックスを取得します。タイトル部分には「クリックしてタイトルを入力」というデフォルトの値が存在するため、取得したテキストボックスのテキストが「クリックしてタイトルを入力」と一致する場合に、そのテキストを表示します。

質問者が選んだベストアンサー

  • ベストアンサー
  • s-uzen
  • ベストアンサー率65% (2051/3119)
回答No.2

すみません。 こちらで試した PPT の画像を添付しないで回答をしてしまったので、こちらに添付します。 試したバージョンはPowerPoint 2010 です。 プレースホルダ(何も入力していない際に表示されるテキストはEmptyとなってしまうので)、およびテキストボックスには文字を入力しています。

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • s-uzen
  • ベストアンサー率65% (2051/3119)
回答No.1

プレースホルダーなどには文字が入力されていないとEnptyとなって、識別ができず何も取得できないようです。 下記で試してみましたが、やりたいことと合っているか不明ですが参考になれば。 プレースホルダ、テキストボックスの値はTextEffect.text と TextFrame.TextRange.text のどちらでも取得できるようなので、取得したものを shape の Type で Placeholder かどうかで判別して、TextBox は無視するようにしてみました。 Sub TextBoxToDebugPrint() Dim slide Dim text1 As String, text2 As String For Each slide In ActiveWindow.Parent.Slides Dim shape For Each shape In slide.Shapes If shape.TextEffect.text <> "" Then If shape.Type = msoPlaceholder Then text1 = shape.TextEffect.text text2 = shape.TextFrame.TextRange.text Debug.Print text1, text2 End If End If Next Next End Sub  

snnqoactvq
質問者

お礼

ご回答ありがとうございます。

すると、全ての回答が全文表示されます。

関連するQ&A