PowerPointマクロで選択文字列を黒→赤→青の順に切り替える

Pocket

前回、PowerPointマクロを利用して、オブジェクト内の選択文字列を赤文字に変える手順を記載しました。

しかしながら、この方法だと違う色にする毎にマクロを作成し、クイックアクセスツールバーに登録しなければなりません。

そこで今回は勉強も兼ねて、マクロを実行する度に色を黒→赤→青に変えるプログラムに変更してみました。

With文とIf文を使ってプログラミング

とはいえ、私はVBAについてほぼ初心者なので、With文がなんなのかよく知らず、それを調べる所から始めました。
ちなみになぜ、With文を使おうと思ったかというと、マクロの記録をしたときに、ちょくちょくWith文が使われていたからです。

With文について

どうも調べてみると、With文の中では共通のオブジェクトに対して操作が可能になるようです。

つまり、前回以下のようなプログラムを書きましたが、

Sub 文字列を赤にする()
   ActiveWindow.Selection.TextRange.Font.Color.RGB = RGB(255, 0, 0)
End Sub

With文を利用して、以下のように書き換えることが可能のようです。

Sub 色を変える()
   With ActiveWindow.Selection
      .TextRange.Font.Color.RGB = RGB(255, 0, 0)
   End With
End Sub

Withで操作するオブジェクトを指定しておくことで、End Withまで、いちいちそのオブジェクトを指定しなくて良い、というメリットがあるようです。
上の例だと1回しか操作していないのであまり意味がないですが、同じオブジェクトに対して操作する場合は、With文を使うと効率的ですね。

If文について

If文については、なんからプログラミングされたことがある方なら、どういうものかご存知だと思います。

今回は、指定した文字列が黒だったら赤、赤だったら青、黒および赤以外だったら黒に戻すというプログラムにしました。

プログラミング内容

以下が実際にプログラミングした結果は以下の通りです。

Sub 色を変える()
   
   With ActiveWindow.Selection

      If .TextRange.Font.Color.RGB = RGB(0, 0, 0) Then
         .TextRange.Font.Color.RGB = RGB(255, 0, 0)
      ElseIf .TextRange.Font.Color.RGB = RGB(255, 0, 0) Then
         .TextRange.Font.Color.RGB = RGB(0, 0, 255)
      Else
         .TextRange.Font.Color.RGB = RGB(0, 0, 0)
      End If
      
   End With

End Sub

With文を使っているとはいえ、最初にオブジェクトの宣言などをして、もう少しスッキリしたプログラムにできそうですが、今回でPower Point VBAは2回目だし、これで動いたので、とりあえず良しとしたいと思います。

もしこれからPower Point VBAを勉強しようとしている方の参考になれば幸いです。


Comments

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA