許せない心理テスト

ダメ元でお聞きします。
複数のパワーポイントに記載されている指定した文字をそれぞれ置換したいのですが、その方法が思いつきません。ワードやエクセルはそれらしいものは見つかるのですが、パワーポイントは見つかりませんでした。イメージとしては以下の通りです。
https://stabucky.com/wp/archives/13067
ワードのマクロ文をパワーポイントように書き換えられないかと試行錯誤しましたができませんでした。
その方法を思いつく方がいらっしゃいましたら教えて欲しいです。

A 回答 (2件)

こんばんは


>ワードやエクセルはそれらしいものは見つかるのですが、
PowerPoint VBAで処理をしたいと言う事でしょうか
>複数のパワーポイント
PowerPointファイルが沢山あると言う事でしょうか、、
その場合、Excelからでも良いのかな、、と思いましたが
参考として
自身のPowerPointファイルのすべてのスライドにある 
対象テキストを置き換える PowerPoint VBAです
少し雑かもしれませんが(グループ化したシェイプに対しては対応していません)
これをFolderPickerなどで複数ファイルのパスを取得して
複数のファイルに対してループ処理すれば良さそうな気がします。

Sub Replace_text()
  Dim sld As Slide
  Dim shp As Shape
  Dim tRng As TextRange
  Dim FindRng As TextRange
  Dim strBf As String, strAf As String
  strBf = "YYY"
  strAf = "XXX"
  For Each sld In ActivePresentation.Slides
   For Each shp In sld.Shapes
    If shp.HasTextFrame Then
      Set tRng = shp.TextFrame.TextRange
      Do
       Set FindRng = tRng.Find(FindWhat:=strBf, After:=1)
       If Not FindRng Is Nothing Then
        tRng.Replace FindWhat:=strBf, ReplaceWhat:=strAf
       Else
        Exit Do
       End If
      Loop
    End If
   Next
  Next
End Sub
    • good
    • 0

こんにちは



>その方法を思いつく方がいらっしゃいましたら~
PPTはあまりよく知りませんけれど、コメント等は対象外としても良いのなら、確か、プレゼンテーション内の表示は全てShapeオブジェクトだったように記憶しています。

ですので、各Slide内の各Shapeに対して、順次テキストの置換を行うようにすれば宜しいのではないでしょうか。
ただし、テキストを持たない画像なども含まれているはずですので、事前にHasTextFrame 等で確認する必要があるように思います。
https://docs.microsoft.com/ja-jp/office/vba/api/ …
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報