Powerpoint VBAを使おう!

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

Powerpoint VBA 基本① 入門編

最初の部分をすっとばして,私が最近学んだことを思いつくまま書きまくってきました。
ほうほう,いろいろできるのか,ExcelVBAも知らないけど,少しやってみるか。そう思った人がいた場合,最初を完全にすっとばして書いてますので,最初の最初について触れてみようと思いました。
他の方が書いてあるものがあれば,そのリンクで,と思ったけどなかなか見当たりません。書籍も極めて少ないですしね・・。めんどくささに負けそうですがここは書いてみよう。
余計なコメントをいつものように書いていると長くなるので,できるだけシンプルにここからは行きます。

①「開発」リボンを出す
 f:id:chemiphys:20170107233213p:plain

[ファイル]→[オプション]→[リボンのユーザー設定]→[開発]タブにチェックをいれましょう。
f:id:chemiphys:20170107233409p:plain
とてもお世話になるツールが並んでいます。[Visual Basic Editor]と[マクロ]については,クイックアクセスツールバーに登録しておくと便利です。
それぞれのアイコンの上で右クリックすると,[クイックアクセスツールバーに登録]と出るので簡単。

Visual Basic Editorを開く。
早速Visual Basic Editorを見てみましょう。
f:id:chemiphys:20170107233810p:plain
これと友達になることが大事。より早く友達になれるように,下準備。

わたしのおすすめとしては,
②-1 表示メニューから イミディエイトウィンドウ と ローカルウィンドウ は出すべき。(個人見解)
②-2 ツールバーのあたりで右クリックして [編集]ツールにチェックを入れて出しておく。
ここまでは一度出しておけばずーっと出てくれています。
②-3 Excelと違いマクロを書く場所がひとつもないので,とりあえず標準モジュールを挿入する。
f:id:chemiphys:20170107234625p:plain

これで準備完了です。要素としてはだいたい次の画面になります。ウィンドウの大きさは説明を入れるために変なサイズになってますが,調整してください。
f:id:chemiphys:20170108000406p:plain
編集ツールの中にはコメントブロックやブックマークなど便利なツールが入っていますので,出しておくと便利です。

最初からきれいで効率の良いマクロは組めないと思われます。ながーくなったりしますので,ブックマークとか便利ですね。

③さきほど挿入した標準モジュールに,いろいろなページに書かれているマクロを貼り付ける。
コードが貼り付けられると,マクロの準備ができたことになります。
マクロの実行の仕方はいくつかあります。

まず,次のコードを打ち込んでみましょう。

Sub HelloWorld()
    MsgBox "Hello! World"
End Sub

③-1 Sub HelloWorld [Enter]と入力すると,直後の()とEnd Subが補完されます。複雑なことをしだすまではこの辺は自動にまかせましょう。
③-2 マクロ名とEnd Subの間に移動して, msgbox "Hello! World"と打ち込んでみてください。""の中身は大文字小文字は自己責任で打ちます。msgboxは小文字で打ち込みましょう。
綴りが正しければVisualBasicEditorが大文字小文字を適切に指定してくれるので,ミスの防止につながります。

Sub の後の 『HelloWorld』というのがマクロ名になります。マクロ名の先頭に数字は使えません。
マクロを他のマクロの中で呼び出す場合,マクロ名を書くことがあります。細かい決まりは私も素人なので知りませんが,定数・変数名などについても言えることですが,ここで大文字小文字を混ぜた書き方をしておくと,綴りが正しいかどうかの指標とすることができますので,大文字小文字を自分なりの規則で混ぜていくといいと思います。
日本語もマクロ名に使えますが,そのときは大文字小文字はもちろん関係ありません(゚▽゚*)

③-3 マクロを呼び出してみましょう。パワーポイントのほうに戻って,
 [表示]または[開発]→[マクロ]→HelloWorldを選択して[実行]  (他人のパソコン等で使うとき用に,表示リボンの右端にあることを覚えておきましょう。)

f:id:chemiphys:20170108002607p:plain
こうすることで,マクロが実行されます。

④最低限のVisual Basic Editorの補足

④-1 
コードの最初にOption Explicitと書かれている場合,変数は宣言しないと使えません。
最初から慣れようとしてもいいかもしれませんが,始めたばっかりの場合はうざいしコードは長くなるし大変なので,
変数のことが少しわかり始めるまでは Option Explicit は書かない方がいいです。
変数ってこういうものか,とわかりだしたらOption Explicitを書くことをお勧めします。

④-2
変数の中身がどうなっているのか知りたいことがあるので,その方法。
ちょっとコードを書き換えますね。

Sub HelloWorld()
    
    StrMsg = "Hello! World"
    
    StrMsg2 = StrMsg
    
    MsgBox StrMsg2
    
End Sub

とっても無駄なことをしてるマクロです。結果は先ほどの3行のマクロとかわりません。
ブレークポイントを設定してみましょう。
f:id:chemiphys:20170108003927p:plain
ブレークポイントは編集ツールバーの中の 手 のマークでも設定/解除ができますが,止めたい部分のコードの頭のあたりをクリックするだけでも設定/解除ができます。

Visual Basic Editorのほうからマクロを起動してみましょう。実行したいマクロのところにカーソルがある状態で [F5]キーかツールバーの右向きの緑色の三角ボタンがマクロ実行のボタンです。
f:id:chemiphys:20170108004350p:plain
ブレークポイントを設定していると,標準モジュールでは,そこでマクロが止まるようになります。
マクロを継続するには先ほど同様 [F5]を押すか,実行ボタンを押すと次に進みます。
上の図を見てください。StrMsg2=StrMsgのところが黄色くなっています。この行はまだ実行されていません。
ローカルウィンドウを見ると, StrMsgの値は"Hello! World"が入ってることがわかります。この行がまだ実行されていないので,StrMsg2にはまだ何も入ってないことがわかりますね。
コードを自由にストップして,ローカルウィンドウで変数の中身を確認できていれば,コードの理解はどんどん進みます。

StrMsgの型が Variant/String となっているように,変数の宣言をしていませんので,Variantというなんでも納めれる変数となっていますが,中身はString(文字列) なんだよとVBAが判断してくれていることがわかります。
なので,変数がわかるようになったら
まずはOption Explicitを頭に書くか,オプションで自動的に入るようにするといいです。
f:id:chemiphys:20170108010112p:plain
変数の宣言を強制する というやつにチェックを入れると自動的に入るようになります。

まずはそのうちに,
Dim StrMsg
と宣言できるようになりましょう。型はとりあえず後回しでもいい。
型がわかってきたらわかったものから,
Dim StrMsg as String
のように適切に宣言できるようになっていくといいです。

最初は書かなくても自動判断してくれます(゚▽゚*)カシコイ まかせてしまいましょう。
ブレークポイントのかわりに Stop と入れてあげることでもコードを止めることができます。

こちらが便利な場合もありますから,覚えておくと役に立ちます。

最低限のスタートの知識とできれば最初に知っておくといいことはここらへんかなぁ。

②で最低限知っておいた方がいいコードについて触れるようにします。