図形を描いてみよう(その2)

さて、とりあえず、図形が描けるようになりました。

前回のプログラムを見てみましょう。

これ、とっても大きな問題があります。
なんだかわかりますか?
この「正方形/長方形 1」の名前、毎回同じとは限らないんです。
図形を描いたり消したりするうちに、最後の数字がどんどん変わっていくんです。

その前に、まず、With~End Withというのを覚えましょう。

With というのは、主語をまとめる書き方です。

今回の例のプログラムを日本語に翻訳してみると、

そのまま翻訳してみた

・正方形/長方形 1 は、「図形の塗りつぶし」の色は黄色だよ。
・正方形/長方形 1 は、「線の太さ」の8ポイントだよ。
・正方形/長方形 1 は、「線の色は」は緑だよ。

のように翻訳できますよね。

ところで、日本語で同じ意味の文章を書くときは、主語を省略して、

主語をまとめた書き方

正方形/長方形 1 は、
・「図形の塗りつぶし」の色は黄色
・「線の太さ」の8ポイント
・「線の色は」は緑
だよ。

と書いても、同じ意味になりますよね。

これと同じことをプログラムで書くと、

このように書けます。With~End Withに挟まれたところは、同じ主語のことを説明しているよ、ということですね。

なんとなくわかりますか?

ここで、さらにもう一段階ジャンプします。準備はいいですか?

前回のプログラムをもう一度おさらいしてみましょう

このように、最初に長方形を描いてから、次に別のプログラムで、色や線を指定したのでした。
この二つのプログラムを翻訳してみましょう。

二つのプログラム

【図形】
 新しく長方形を描いてね

【色】
 正方形/長方形 1 は、「図形の塗りつぶし」の色は黄色だよ。
 正方形/長方形 1 は、「線の太さ」の8ポイントだよ。
 正方形/長方形 1 は、「線の色は」は緑だよ。

こんな感じですね。これを一つの文章にしてみましょう。

ひとつにまとめた

新しく長方形 を描いてね、
・「図形の塗りつぶし」の色は黄色
・「線の太さ」の8ポイント
・「線の色は」は緑
だよ。

こんな感じになりそうですよね。

Withをつかうと、これが一気に書けちゃうんです。
こんなふうに。

上の日本語の文章との対応、なんとなくわかりますか?

気を付けることがひとつ。
Withを使うときは、
With Shapes.AddShape(msoShapeRectangle, 50, 50, 100, 200)
のようにShapes.AddShapeの後ろにつける引数を()でくくってあげる必要があるんです。
これはもう、決まりごとなので、そういうものなのだ、と覚えておきましょう。

これで、いちいち図形を特定しなくても、色や枠線を自由に設定することができるようになりました。

次回は、繰り返しや条件分岐を組み合わせて、図形をたくさん書いてみましょう。

次回予告

次回は、図形をたくさん描いてみようです。

おたのしみに。