前回、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を勉強しようとしている方の参考になれば幸いです。
コメントを残す