2020年4月22日水曜日

パワポの背景色と文字色を一括変更するVBS

「大量のパワポファイルの背景色と文字色を一括変更したい」という要望があったのでVBSで作成。Windows専用。
(背景色はスライドマスターの背景色)

(1)ファイルをダウンロード
または下記コードをメモ帳やエディタなどにコピペし「パワポの背景色と文字色を一括変更する.VBS」として保存
(2)メモ帳やエディタで色指定を適宜修正
(3)対象のパワポファイルと同じフォルダに置く
(4)ダブルクリックして実行

注意:ファイルを直接書き換えるのでバックアップとること

ソースコード(参考)
' ----------------------------------------
' パワポの背景色と文字色を一括変更するVBS
' ----------------------------------------

' 色指定
bgColor = RGB(0, 255, 0) ' 背景色指定
fontColor = RGB(255, 255, 255) ' 文字色指定

' RGBではなく色名で指定しても良い
' vbBlack
' vbBlue
' vbCyan
' vbGreen
' vbMagenta
' vbRed
' vbWhite
' vbYellow

' スクリプトのパス
lengthPath = len(wscript.scriptfullname) - len(wscript.scriptname)
path = left(wscript.scriptfullname,lengthPath)

' ファイルシステムオブジェクト
Set objFso = CreateObject("Scripting.FileSystemObject")

' パワーポイントオブジェクト
Set objPPApp = CreateObject("PowerPoint.Application")

'全ファイルについて処理
count = 0
For Each file In objFso.GetFolder(path).Files
    If objFso.GetExtensionName(file) = "ppt" OR objFso.GetExtensionName(file) = "pptx" Then ' パワーポイントのみ
        With objPPApp
            .Visible = True
            .Presentations.Open file   ' ファイル開く
            With .ActivePresentation
                .SlideMaster.Background.Fill.ForeColor.RGB = bgColor ' スライドマスター背景色変更
                ' 文字色を変更する
                 For Each sld in .Slides ' 全スライド
                    For Each shp In sld.Shapes ' 全シェイプ
                        shp.TextFrame.TextRange.Font.Color = fontColor
                    Next
                Next
                .Save   ' 保存
                .Close  ' 閉じる
            End With
        End With
    count = count + 1
    End If
Next
msgbox(count & "個のファイルを変換しました.")

0 件のコメント:

コメントを投稿