Excel VBAを利用したPowerPointの文字のフォント一括変更方法

PowerPointのプレゼンテーションを作成する際、スライドのデザインやレイアウトを統一することは大切です。特に、文字のフォントはプレゼンテーションの見栄えや印象を大きく左右します。しかし、大量のスライドやテキストボックスがある場合、一つ一つ手動でフォントを変更するのは非常に時間がかかる作業となります。この記事では、Excel VBAを利用してPowerPointの文字のフォントを一括で変更する方法について詳しく説明します。

目次

Excel VBAの基本

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

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

Excel VBAを使ったフォントの一括変更基本手法

まず、Excel VBAを利用してPowerPointの文字のフォントを一括で変更する基本の手法について見ていきましょう。


Sub ChangeFontInPowerPoint()
    Dim pptApp As Object
    Dim pptPresentation As Object
    Dim slide As Object
    Dim shape As Object

    ' PowerPointアプリケーションを起動
    Set pptApp = CreateObject("PowerPoint.Application")
    pptApp.Visible = True

    ' プレゼンテーションを開く
    Set pptPresentation = pptApp.Presentations.Open("C:\path\to\your\presentation.pptx")

    ' すべてのスライドをループで処理
    For Each slide In pptPresentation.Slides
        ' すべてのシェイプをループで処理
        For Each shape In slide.Shapes
            ' テキストボックスの場合のみフォントを変更
            If shape.HasTextFrame Then
                shape.TextFrame.TextRange.Font.Name = "新しいフォント名"
            End If
        Next shape
    Next slide
End Sub

このコードは、指定したPowerPointファイルを開き、各スライド内のテキストボックスのフォントを指定したフォントに変更するものです。`”新しいフォント名”`の部分に変更したいフォント名を入力してください。

コードの詳細解説

1. `pptApp`という名前でPowerPointアプリケーションオブジェクトを作成します。
2. `pptPresentation`で指定したファイルパスのPowerPointプレゼンテーションを開きます。
3. `For Each slide In pptPresentation.Slides`で各スライドをループで処理します。
4. 各スライド内のすべてのシェイプ(テキストボックス、図形など)をループで処理します。
5. シェイプがテキストボックスの場合(`If shape.HasTextFrame Then`)、そのテキストボックスのフォントを指定したフォントに変更します。

応用例

1. 特定のスライドのみのフォントを変更

特定のスライド範囲だけのフォントを変更したい場合は、次のようにコードを修正できます。


' 例: 3から5枚目のスライドのみフォントを変更
If slide.SlideIndex >= 3 And slide.SlideIndex <= 5 Then
    For Each shape In slide.Shapes
        If shape.HasTextFrame Then
            shape.TextFrame.TextRange.Font.Name = "新しいフォント名"
        End If
    Next shape
End If

2. フォントのサイズも一括変更

フォントのサイズも一括で変更したい場合、次のようにコードを追加します。


If shape.HasTextFrame Then
    shape.TextFrame.TextRange.Font.Name = "新しいフォント名"
    shape.TextFrame.TextRange.Font.Size = 20 ' 20ポイントに変更
End If

3. 特定の文字列を含むテキストボックスのみ変更

例えば、"注意"という文字列を含むテキストボックスのみフォントを変更したい場合、以下のようにコードを修正します。


If shape.HasTextFrame Then
    If InStr(shape.TextFrame.TextRange.Text, "注意") > 0 Then
        shape.TextFrame.TextRange.Font.Name = "新しいフォント名"
    End If
End If

まとめ

Excel VBAを利用してPowerPointの文字のフォントを一括で変更する方法を学びました。このテクニックを使えば、大量のスライドでも短時間でフォントの変更作業が可能です。さらに、応用例を参考にして、さまざまな条件下でのフォント変更も可能となります。VBAの力を利用して、PowerPointのプレゼンテーション作成をより効率的に行いましょう。

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

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

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

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

コメント

コメントする

目次