Monolog

Goo辞書(英和)で“Monolog”は、
『独白; 独白劇; 独り占めのおしゃべり』
独り言・備忘録を綴るブログ

パワーポイントの連続置換処理

2007-11-13 01:00:00 | Coding

パワーポイントの一部のワードを置換して、新しいファイルとして保存したいという相談を持ちかけられました。

そんなの手動でやればいいじゃない!と返答したところ、100回の置換作業があるのに手動でやるのかと反論されてしまいました。

つまり、雛形のPowerPointファイルの一部だけを変えたものを100種類作って欲しいという要請だったのです。

という事で、ExcelVBAでPowerPointファイルの連続処理プログラムを作る事にしました。


PowerPoint処理を自動化するのは初めてでしたが、MicrosoftOfficeのオブジェクト体系さえ分かれば何とかなる!と信じて突き進んでいたら、あっけなくできてしまいました。
尚、参考サイトは下記になります。
MicrosoftOfficeVBA(PowerPointVBA)オブジェクトモデル

また、完成したコードのポイントは下記の通り。
(PowerPointファイル処理部分のみを抜粋)


Dim objPowerpointApplication As Object
Set objPowerpointApplication = CreateObject("Powerpoint.Application")
objPowerpointApplication.Visible = True

'PowerpointFileNameに対象のパワーポイントファイルを指定する。
objPowerpointApplication.Presentations.Open Filename:=PowerpointFileName

Dim slide
For Each slide In objPowerpointApplication.ActiveWindow.Parent.Slides
    Dim shape
    For Each shape In slide.Shapes
        If shape.HasTextFrame = msoTrue Then
            For Each word In shape.TextFrame.TextRange.Words
                word.Text = Replace(word.Text, "検索ワード" , "置換ワード")   
            Next
        End If
    Next
Next

'置換処理を終えたPowerPointファイルを上書き保存する。
objPowerpointApplication.ActivePresentation.Save

'PowerPointファイルを閉じる。
objPowerpointApplication.ActivePresentation.Close

'PowerPointアプリを閉じる。
objPowerpointApplication.Quit

'PowerPointオブジェクトをクリアする。
 
Set objPowerpointApplication = Nothing

以上を、毎度おなじみ!?のExcelVBAに組み込むことで、PowerPointの連続処理プログラムが完成しました。
あまり使う場面がないので、備忘録として残しておきました。

尚、完成品をご入用であれば、直メしてください。