読者です 読者をやめる 読者になる 読者になる

Powerpoint VBAを使おう!

Powerpoint VBAやExcelのVBAで遊んでいます。Word VBAも始めました。

ボタンを取得したり,スライドをボタンから取得したり。

本当にパワーポイントのVBAについては,情報が得にくいです。

それでも,いろんなとこを見に行ってると,それなりに何とかする方法があるもので,

よく使ってる手をメモ。

 

スライドにテキストボックスや図形を置いて,

[挿入]→[動作]

でマクロの実行をつけると,いろんなことができます。

Excelのように記録マクロが使えないので,一からコードを書く必要がありますが,もともと高性能なパワーポイントですから,いろんなことができるようです。

 

ボタンの名前を取得させて,その名前とleft関数やmid関数を利用して組むということをすると,マクロをやりたいことの数だけ書かなくてもいろいろとできるので,ボタンの名前を取得する方法と,その時必要なスライドインデックスを取得する方法について書きます。

 

わたしも試行錯誤でやってるところですので,利用は自己責任でお願いします。

 

Sub ボタン名を取得(図形 as shape)
    Msgbox 図形.Name
End Sub

 

 こう書いたマクロを図形のクリック時に設定してボタンを押してみてください。

図形の名前が取れます。

 

図形の名前をいちいち覚えて使おうとするのは大変なので,図形の名前を自分でつけなおしてしまいましょう。

 

[ホーム]→[オブジェクトの選択と表示]を押すと図形の一覧が出ます。名前を書き換えてしまいましょう。その名前に番号とか入れておけば,番号によりいろんな処理をさせることが可能になります。テキストの中身で分岐させるのも面白いですね。よく使います。

 

あと,スライドの取得の方法もいろいろあるようですが,わたしがよく使うのは,

   SlideShowWindows(1).View.CurrentShowPosition

で取得というのをどこかで学ばせてもらい使っていました。スライドショー時しか使えないということでコードの確認をするときなかなか不便な面があります。

 

スライドショー時しか使えないのは同じですが,最近のお気に入りは,

図形からスライドを取得する方法です。さっきのように図形を押したら実行されるマクロの中に,

Sub ボタン名を取得(図形 as shape)
   Dim TSlide As Slide
   Set TSlide = ActivePresentation.Slides(図形.Parent.SlideIndex)
End Sub

 のように,図形のparentからスライドインデックスを取得するってことができます。

もしかしたらできるのかな!?と思って試したとき見事に取得できた時は大喜びしたお気に入りのスライド取得方法です。

どなたかの役に立てば幸いですが・・(;´▽`A``

いろいろと見させてもらっているブログがあってコードをきれいに載せてある方法をよく見かけます。どうやってるんだろう。。

 

いろいろ学ぶことは多いですね。

Windows APIの関数や,CreateObjectやクラスモジュールなど,知りたいことは山積みです。特にクラスモジュールは使いこなせるようになりたい。

今のところは,パワーポイントのイベントを起こすためだけに使っていますが,徐々に学んでいつか少しでもここに書けるようになればいいなぁ。