PowerPoint VBAで選択した部分を判別してそのフォントを変更するマクロ


selection

photo credit: Hatoriz Idea selection via photopin (license)

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

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

前回の記事はコチラ。

PowerPoint VBAで選択しているテキスト範囲のフォントを変更するマクロの作り方
PowerPoint VBAで選択した部分のフォントを変更するマクロの作り方をお伝えしています。今回は、選択しているテキスト範囲の取得方法、およびフォントを変更するマクロの作り方について紹介していきます。

選択しているテキスト範囲のフォントを変更するマクロを作りました。

さて、スライドの選択、シェイプの選択、テキストの選択…と3種類作りましたが、SelectionオブジェクトのTypeプロパティを見て、勝手に振り分けてくれたら便利ですよね。

ということで、今回これまでのマクロをギュッとまとめて、どんな状態でも動くようにしてみます。

PowerPoint VBAで選択した部分を判別してそのフォントを変更するマクロを紹介します。

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

参考にするこれまで作ったマクロ

これまで作ったマクロをいい感じに組み合わせれば目的のものができそうなので、紹介しておきましょう。

選択しているテキストのフォントを変更するマクロ

まず、選択しているテキストのフォントを変更するマクロ。

これはけっこうシンプルですよね。

解説はこちらの記事を参考してください。

PowerPoint VBAで選択しているテキスト範囲のフォントを変更するマクロの作り方
PowerPoint VBAで選択した部分のフォントを変更するマクロの作り方をお伝えしています。今回は、選択しているテキスト範囲の取得方法、およびフォントを変更するマクロの作り方について紹介していきます。

選択しているシェイプのフォントを変更するマクロ

続いて、選択しているシェイプのフォントを変更するマクロです。

ShapeRangeの要素分をループする必要がありますので、前述の「選択しているテキスト」よりも少し複雑です。

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

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

最後に、選択しているスライドのフォントを変更するマクロです。

SlideRangeについてのループと、各スライドのShapesコレクションについてのループとの入れ子のループになりますので、これが最も複雑な感じですね。

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

選択箇所を判別してそのフォントを変更するマクロ

以上のマクロを組み合わせて、選択箇所を判別してフォントを変更するマクロを作成しました。

コチラです。

共通部分はSubプロシージャにより部品化していますが、けっこうシンプルですね。

Select Caseステートメントによる多岐分岐

SelectionオブジェクトのTypeプロパティで、

  • テキストが選択されている
  • シェイプが選択されている
  • スライドが選択されている

のいずれかの状態かを判別できます。

If~ElseIfステートメントでも実現できるのですが、並列の3つ以上の分岐であれば、Select Caseステートメントを使ったほうが読みやすくなります。

書式はコチラです。

Select Case
 Case 式のリスト1
  ’式が式のリスト1のいずれかとマッチした場合の処理
 Case 式のリスト2
  ’式が式のリスト2のいずれかとマッチした場合の処理
 …
 Case Else
  ’どのCase句ともマッチしなかった場合の処理
End Select

それぞれのCase句の「式のリスト」にはカンマ区切りで複数の式を設定することができます。

ToキーワードやIsキーワードを使って、範囲で指定をすることができます。

前述のコードでは、Typeプロパティのずばりの値ごとに条件分岐をするように作っています。

PowerPoint VBAのSelectionオブジェクトの4つのタイプについて理解しよう!
PowerPoint VBAで選択しているシェイプのフォントを変更するマクロの作り方をお伝えしています。今回は、選択する部分を表すSelectionオブジェクトの4つのタイプについて理解を深めていきます。

シェイプのコレクションについてループをする処理

シェイプが選択されている場合はShapeRangeについてのループ、スライドが選択されている場合はスライド上のShapeコレクションについてのループになります。

その2つはSubプロシージャとして部品化することができますので、以下のように作りました。

フォントを変更する処理

いずれにしても、フォントを変更する対象はFontオブジェクトになります。

ですから、フォントの変更部分はFontオブジェクトを受け取って、そのフォント種類とフォントの色を変更するSubプロシージャに部品化をすることができます。

ここを部品化しておけば、「やっぱりフォントの設定をこうしたい」という事後の変更にも一箇所の変更で対応できるようになります。

実行結果

これらのプロシージャを作成して、「Sub 選択箇所のフォントを変更」を実行します。

実行したときの、選択状態によって実行結果が変わります。

まず、テキストを選択しているときがコチラ。

PowerPoint VBAで選択しているテキストのフォントを変更する

次がいくつかのシェイプを選択している場合です。

PowerPoint VBAで選択しているシェイプのフォントを変更する

そして、スライドを選択している状態での結果がこちらです。

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

ということで、選択している状態に応じて、フォントの変更をすることができていますね。

まとめ

以上、PowerPoint VBAで選択している部分を判別してそのフォントを変更するマクロの作り方について解説しました。

これまで作ってきたマクロをガッシャンコしたわけですが、Select CaseステートメントやSubプロシージャによる部品化でスッキリさせるのが重要ですね。

次回は、このマクロを実行しやすくしていきます。

どうぞお楽しみに!

連載目次:初心者向け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をコピーしました