PowerPoint VBAで選択しているスライドのフォントを変更するマクロの作り方


range-font

photo credit: hans-johnson Kitakyushu_1 via photopin (license)

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

PowerPoint VBAで選択している部分を操作するマクロの作り方について解説をしています。

前回の記事はコチラです。

PowerPoint VBAで選択しているスライドを操作するSlideRangeオブジェクト
PowerPoint VBAで選択している部分を操作するマクロの作り方をお伝えしています。今回は、選択しているスライド範囲を操作するSlideRangeオブジェクトとその使い方について紹介していきます。

選択しているスライド範囲を表すSlideRangeオブジェクトについて紹介しました。

今回は、選択しているスライド範囲について、そのフォントを変更するマクロの作り方を紹介していきましょう。

PowerPoint VBAで選択しているスライドのフォントを変更するマクロの作り方です。

では、行ってみましょう。

前回のおさらい

前回は以下のようなプロシージャを紹介しました。

4行目でスライドが選択しているかどうかを判定し、選択されていればそのスライドの数をイミディエイトウィンドウに出力しつつ、複製をするというものです。

今回は、選択しているスライド上のシェイプについて、フォントを変更する方法をお伝えしていきます。

選択スライドの全てのフォントの設定を変更するマクロ

選択スライドの全てのフォントの設定をするマクロですが、流れとしては以下のようになります。

  • 選択している全てのスライドについて繰り返し
    • 現在のスライドに含まれる全てのシェイプについて繰り返し
      • フォントの設定をする

コードとしては以下のようになります。

以下解説をしていきましょう。

SlideRangeからインデックスでスライドを取り出す

7行目~16行目のFor文は「選択している全てのスライドについて」繰り返す部分です。

Countプロパティで含まれるスライドの枚数がわかりますので、その分繰り返しをします。

それで、スライド範囲に含まれるスライドには、1からはじまるインデックスが振られていますので、以下のようにして、インデックスを使って個々のスライドをSlideオブジェクトとして取り出すことができます。

SlideRangeオブジェクト(インデックス)

スライドに含まれるシェイプについてフォントを設定する

あとは、各Slideオブジェクトの全てのシェイプについて、フォントを設定していけば良いですね。

シェイプコレクションのループとフォントの設定をしている部分が9行目~15行目になります。

詳細は以下の記事をご参考ください。

PowerPoint VBAでシェイプのフォント設定をする色々なプロパティまとめ
PowerPoint VBA入門編ということで、図形やテキストボックスのフォントを変更するマクロの作り方をお伝えしています。今回は、テキストのフォントを変更するいろいろなプロパティまとめをお伝えします。

実行結果

以下のスライドを選択しているときに上記プロシージャを実行します。

PowerPointでスライドを選択

すると、以下のように選択しているスライドのみフォントを変更することができました。

PowerPoint VBAで選択しているスライドのフォントを変更

別解:SlideRangeオブジェクトについてFor Each文でループを回す(後日注記)

別解として、SlideRangeオブジェクトはFor Each文でループできるよ!というご指摘をいただきました。

SlideRangeはコレクションでFor Each~Nextでも処理できる:パワーポイントマクロ・PowerPoint VBAの使い方-Slide・スライド
対象:PowerPoint2010, PowerPoint2013, Wind...

確かに以下のコードにより、ループを回すことができることを確認いたしましたので、追記させていただきます。

「インストラクターのネタ帳」さま、ご指摘ありがとうございました。

まとめ

以上、PowerPoint VBAで選択しているスライドのフォントを変更するマクロの作り方を紹介しました。

これで、特定のスライドだけフォントを変更していくというのが一発でできるようになりますね。

ぜひご活用ください。

さて、次回は「選択しているシェイプ」について紹介していきます。

PowerPoint VBAで選択しているシェイプを操作するShapeRangeオブジェクト
PowerPoint VBAで選択している部分を操作するマクロの作り方についてお伝えしています。今回は、選択しているシェイプ範囲を操作するShapeRangeオブジェクトとその使い方について紹介をします。

どうぞお楽しみに!

連載目次:初心者向け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でフォームボタンからマクロを実行する方法

  投稿者プロフィール

タカハシノリアキ株式会社プランノーツ 代表取締役
株式会社プランノーツ代表、コミュニティ「ノンプロ研」主宰。1976年こどもの日生まれ。東京板橋区在住。「ITで日本の『働く』の価値を上げる!」をテーマに、VBA&GASの開発、講師、執筆などをしております。→詳しいプロフィールはコチラ
★ご依頼・ご相談はお気軽にどうぞ!→お問い合わせはコチラ
★フォロー頂ければ嬉しいです。

コメント