Excel VBAを使用してPowerPointのスライド背景色を一括変更する方法

Microsoft Excel VBAを使って、PowerPointのスライドの背景色を一括で変更する方法について詳しく解説します。この手法は、プレゼンテーションのデザインを効率的に統一したい時などに非常に役立ちます。具体的なコード例、その詳しい解説、さらに実践的な応用例も含めて解説していきます。

目次

Excel VBAの基本

Excel VBA(Visual Basic for Applications)は、Microsoft Excelに組み込まれたプログラミング言語です。これを用いると、単純作業の自動化だけでなく、高度なデータ分析やレポート作成も可能になります。

そもそも、どこにVBAコードを書いて、どう実行すれば良いのか分からない場合は、以下の記事をご参照ください。

基本的なVBAコード


Sub ChangeSlideBackgroundColor()
    Dim pptApp As Object
    Dim pptPresentation As Object
    Dim sld As Object

    ' PowerPoint アプリケーションを開く
    Set pptApp = CreateObject("PowerPoint.Application")
    Set pptPresentation = pptApp.Presentations.Open("C:\path\to\your\presentation.pptx")

    For Each sld In pptPresentation.Slides
        sld.Background.Fill.ForeColor.RGB = RGB(255, 0, 0) ' 赤色に設定
    Next sld

    pptPresentation.Save
    pptPresentation.Close
    Set pptPresentation = Nothing
    Set pptApp = Nothing
End Sub

コードの詳細解説

このコードは、指定したPowerPointファイルのすべてのスライドの背景色を赤色に変更するためのものです。

– `pptApp`と`pptPresentation`の変数は、PowerPointのアプリケーションとプレゼンテーションをそれぞれ制御するためのオブジェクトを格納します。
– `For Each`ループを使用して、プレゼンテーション内のすべてのスライドに対して背景色を変更する処理を実行します。
– `sld.Background.Fill.ForeColor.RGB` でスライドの背景色を変更しています。ここではRGB(255, 0, 0)として赤色に設定していますが、必要に応じて変更できます。

応用例

1. 複数の色をランダムに設定


Sub RandomBackgroundColor()
    Dim pptApp As Object
    Dim pptPresentation As Object
    Dim sld As Object

    ' PowerPoint アプリケーションを開く
    Set pptApp = CreateObject("PowerPoint.Application")
    Set pptPresentation = pptApp.Presentations.Open("C:\path\to\your\presentation.pptx")

    For Each sld In pptPresentation.Slides
        sld.Background.Fill.ForeColor.RGB = RGB(Int(Rnd() * 256), Int(Rnd() * 256), Int(Rnd() * 256))
    Next sld

    pptPresentation.Save
    pptPresentation.Close
    Set pptPresentation = Nothing
    Set pptApp = Nothing
End Sub

解説

この応用例では、各スライドの背景色をランダムに設定しています。Rnd関数は0以上1未満の乱数を生成するので、それに256を掛けて整数値に変換することで、RGBの各値をランダムに取得します。

2. 特定のスライドだけ背景色を変更


Sub SpecificSlideChange()
    Dim pptApp As Object
    Dim pptPresentation As Object

    ' PowerPoint アプリケーションを開く
    Set pptApp = CreateObject("PowerPoint.Application")
    Set pptPresentation = pptApp.Presentations.Open("C:\path\to\your\presentation.pptx")

    ' 3番目のスライドの背景色を緑に設定
    pptPresentation.Slides(3).Background.Fill.ForeColor.RGB = RGB(0, 255, 0)

    pptPresentation.Save
    pptPresentation.Close
    Set pptPresentation = Nothing
    Set pptApp = Nothing
End Sub

解説

このコードでは、特定のスライド(この場合は3番目)の背景色だけを変更しています。RGB(0, 255, 0)として緑色に設定しています。

3. スライドの背景をグラデーションにする


Sub GradientBackground()
    Dim pptApp As Object
    Dim pptPresentation As Object
    Dim sld As Object

    ' PowerPoint アプリケーションを開く
    Set pptApp = CreateObject("PowerPoint.Application")
    Set pptPresentation = pptApp.Presentations.Open("C:\path\to\your\presentation.pptx")

    For Each sld In pptPresentation.Slides
        With sld.Background.Fill
            .TwoColorGradient msoGradientHorizontal, 1
            .GradientStops(1).Color.RGB = RGB(255, 0, 0)
            .GradientStops(2).Color.RGB = RGB(0, 0, 255)
        End With
    Next sld

    pptPresentation.Save
    pptPresentation.Close
    Set pptPresentation = Nothing
    Set pptApp = Nothing
End Sub

解説

このコードでは、スライドの背景色を赤から青への水平グラデーションに設定しています。GradientStopsプロパティを使用して、グラデーションの各点の色を設定しています。

まとめ

PowerPointのスライドの背景色を一括で変更するExcel VBAのコードを学びました。これにより、プレゼンテーションのデ

ザインを効率的に整えることが可能です。基本的な背景色の変更だけでなく、ランダムな色の設定や特定のスライドのみの変更、グラデーションの適用など、様々なカスタマイズが行えることもわかりました。

VBAも良いけどパワークエリも良い

VBAの解説をしてきましたが、VBAは正直煩雑でメンテナンス性が悪いです。最近はモダンExcelと呼ばれるパワークエリやパワーピボットへのシフトが進んできています。本サイトでもパワークエリの特集をしており、サンプルデータを含む全11回の学習コンテンツでパワークエリを習得することができます。

クリックするとパワークエリの全11講座が表示されます。

パワーピボットの記事はありません。興味がある場合は、書籍で学んでみてください

コメント

コメントする

目次