PowerPoint VBAで選択しているテキスト範囲のフォントを変更するマクロの作り方


textrange-font

photo credit: hownowdesign E’s e collection via photopin (license)

みなさん、こんにちは!
タカハシ(@ntakahashi0505)です。

PowerPoint VBAで選択した部分のフォントを変更するマクロの作り方をお伝えしています。

前回の記事はコチラ。

PowerPoint VBAで選択しているシェイプのフォントを変更するマクロの作り方
PowerPoint VBAで選択している部分を操作するマクロの作り方をお伝えしています。今回は、ShapeRangeオブジェクトつまり選択しているシェイプのフォントを変更するマクロの作り方についてです。

選択しているシェイプのフォントを変更するマクロの作り方をお伝えしました。

さて、スライド→シェイプ→…ときましたので、次は「テキスト」です。

では、PowerPoint VBAで選択しているテキスト範囲のフォントを変更するマクロの作り方について紹介していきます。

行ってみましょう!

スポンサーリンク

選択している部分の取得のおさらい

では、再度「選択している部分」の取得についておさらいをしておきましょう。

コチラの記事で紹介していました、以下コードです。

Sub 選択状態を調べる()

With ActiveWindow.Selection
    If .Type = ppSelectionNone Then Debug.Print "何も選択されていません"
    If .Type >= ppSelectionSlides Then Debug.Print "スライドが選択されています"
    If .Type >= ppSelectionShapes Then Debug.Print "シェイプが選択されています"
    If .Type >= ppSelectionText Then Debug.Print "テキスト範囲が選択されています"
End With

End Sub

アクティブなウィンドウの「選択している部分」を取得、そのTypeプロパティを使って、その選択状態を判定しています。

今回テーマとしている「テキスト」が選択されていれば、「テキスト範囲が選択されています」とイミディエイトウィンドウに出力されるはずですね。

選択しているテキストを操作する

選択しているテキスト範囲を取得する

選択しているテキスト範囲を取得するには、SelectionオブジェクトのTextRangeプロパティを使います。

書式はコチラです。

Selectionオブジェクト.TextRange

以下の記事で紹介している方法であれば、シェイプに含まれるテキスト全体をTextRangeオブジェクトとして取得していましたね。

【初心者向けPowerPoint VBA】Shapeオブジェクトのテキストを取得する方法
初心者向けPowerPoint VBAのシリーズとして、図形やテキストオブジェクトのフォントを変更するマクロを作成する方法をお伝えしています。今回は、Shapeオブジェクトのテキストを取得する方法です。

Selectionオブジェクトに対して実行をすれば、選択している箇所だけをTextRangeオブジェクトとして取得できるというわけです。

TextRangeオブジェクトを取得する例

例として、以下のようにいずれかのシェイプのテキストを選択した状態で…

PowerPointでテキストを選択

コチラのプロシージャを実行してみましょう。

Sub 選択したテキスト範囲()

With ActiveWindow.Selection
    If .Type >= ppSelectionText Then
        Debug.Print "選択しているテキスト: " & .TextRange.Text
    End If
End With

End Sub

イミディエイトウィンドウには、以下のように出力されました。

PowerPoint VBAで選択しているテキストをイミディエイトウィンドウに出力

選択しているテキストのフォントを変更するプロシージャ

さて、では勢い余って選択テキストのフォントの変更をするプロシージャも作ってみましょう。

以下の記事でお伝えしている通り、TextRangeオブジェクトからFontプロパティでFontオブジェクトを取得できちゃうので簡単です。

PowerPoint VBAでフォント設定をするFontオブジェクトを取得する
初心者向けPowerPoint VBAのシリーズとして、全てのシェイプについてフォントを変更するマクロの作成を目指しています。今回はフォントを設定するFontオブジェクトを取得する方法をお伝えします。

プロシージャはコチラです。

Sub 選択したテキスト範囲のフォントを変更()

With ActiveWindow.Selection
    If .Type >= ppSelectionText Then
        With .TextRange.Font
            .Name = "Meiryo UI"
            .NameFarEast = "Meiryo UI"
            .Color = RGB(89, 89, 89)
        End With
    End If
End With

End Sub

実行をすると、以下のようにフォントを変更することができますよ!

PowerPoint VBAでテキスト範囲のフォントを変更する

「うえ」の部分だけ、フォントが変更されましたよね。

まとめ

以上、PowerPoint VBAで選択しているテキスト範囲のフォントを変更するマクロの作り方をお伝えしました。

テキスト範囲はTextRangeオブジェクトで表されますが、Fontオブジェクトもすぐ取得できますし、すんなり便利ですね。

さて、では次回はこれまでの内容を踏まえてマクロを便利にしていきたいと思いますよ。

PowerPoint VBAで選択した部分を判別してそのフォントを変更するマクロ
PowerPoint VBAで選択している部分のフォントを変更するマクロの作り方についてお伝えしています。今回は、これまでのマクロをまとめて、選択した部分を判別してそのフォントを変更するマクロを紹介します。

どうぞお楽しみに!

連載目次:初心者向けPowerPoint VBAで選択箇所を操作する

PowerPointでプレゼンテーションを作っている際に、「選択している部分のフォントを好きに変えたい!」ということありますよね。そのニーズに応えるマクロの作り方をシリーズでお伝えしていきます。
  1. PowerPoint VBAでアクティブなウィンドウを取得する方法
  2. PowerPoint VBAで選択した部分を表すSelectionオブジェクトとその取得
  3. PowerPoint VBAのSelectionオブジェクトの4つのタイプについて理解しよう!
  4. PowerPoint VBAで選択しているスライドを操作するSlideRangeオブジェクト
  5. PowerPoint VBAで選択しているスライドのフォントを変更するマクロの作り方
  6. PowerPoint VBAで選択しているシェイプを操作するShapeRangeオブジェクト
  7. PowerPoint VBAで選択しているシェイプのフォントを変更するマクロの作り方
  8. PowerPoint VBAで選択しているテキスト範囲のフォントを変更するマクロの作り方
  9. PowerPoint VBAで選択した部分を判別してそのフォントを変更するマクロ
  10. PowerPoint VBAでフォームボタンからマクロを実行する方法

タイトルとURLをコピーしました