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

Powerpoint VBAを使おう!

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

Powerpoint VBAに興味が沸いた方々へ③

③については,Powerpoint特有の話ではないので,Excel VBAの本やネットの情報でいくらでも探せる話です。

ここでは変数の使い方について

VBAでコードを作っていく際,いろいろな値を利用していきます。
全ての必要な値をテキストボックス等に書いたり消したりすることもできなくはないですが,
大変ですし画面の更新を伴うことは基本的にスピードを損ねることだと考えます。
そこで,変数というものを自分で決めて,変数に値を入れておいたり,出したりということをします。

変数の値によってちょっと書き方が異なります。
変数の値が単純な数値や文字列である場合。

a=10        'aに数値10を設定する。
b="aの値は"    'bに文字列 『aの値は』を設定する。

このように = を使って書きます。右辺が代入する値です。文字列は""で挟みます。

msgbox a      'メッセージボックスで a を画面に出力する
msgbox b & a   'メッセージボックスで bの値とaの値をつなげて表示する

&を使うと文字列や数値を結合することができます。あくまでつなげる感じ。
数値の場合は +-*/ 等を使えば計算していくことができます。

i=i+1

数学的にはおかしいこの式は,iの値を1増やすよという書き方です。



変数がオブジェクトの場合

Set a = ActivePresentation.Slides(2)     'スライド2をaに代入

このようにSetを使います。オブジェクトの場合は,様々な要素を含むので,出力や利用したい場合は簡単には書けません。

msgbox a.name     'メッセージボックスで aの名前を出力する   プロパティの例
a.delete        'aの中身であるスライド2を消す        メソッドの例

オブジェクト変数に対しては様々なプロパティ(属性)・メソッド(操作)を利用することになります。
オブジェクト、プロパティ、メソッド、およびイベント
なかなか大変ですが,これを使いこなすことは大事だと思うので,がんばってみるしかありません。

とりあえずいろいろな利用例を書こうと思ってこのブログを書いてるので,コードのいろいろなところにいろいろなオブジェクトを使っている部分があります。
見よう見まねで遊んでみるのが大事だと思います。ローカルウィンドウを見るのも理解を助けます

例です。スライド2をつくり,そこに3つの図形を適当に書いて,図のようなコードを書きます。
f:id:chemiphys:20170109114926p:plain
stopを入れるとそこで止めれるのでローカルウィンドウでいろいろなことを確認できる。
f:id:chemiphys:20170109114355p:plain
難しいことがたくさん書かれていますがいろいろなプロパティがあることを見て取れます。

a という変数は型の宣言をしていないので,variant(なんでも収まる変数)だけど中身はSlideだと判断していることもわかりますね。

このことからaはslideという型で宣言すればいいのか,と判断ができます。この判断では間違うことも多々ありますが,スタートは頼ってみていいかと。

スライドの名前がslide2であることや,Shapesの中には3つのアイテムがあるんだということなど伝わってきます。

これらのことを学んだうえで,ではaの型を指定して宣言すると何が得するのか。
f:id:chemiphys:20170109120104p:plain

メソッドとプロパティをあわせて,メンバというそうですが,インテリセンスが使用できるメンバを表示してくれます。
アイコンを見ると違ってますね。Commentsはプロパティ,deleteはメソッドです。

このインテリセンスを最大限活用することがVBA習得の早道かと思いますので,そのためにもオブジェクト変数は積極的に使うといいと思います。

よく使う構文みたいなものも③に書いて終わりにしてしまおうと思ってましたが,とても長くなったので,
④まで続きます_(._.)_