Wordマクロセミナーのプログラミング編 では、毎回、オブジェクトの話をしています。
オブジェクトを操作するために、メソッドとプロパティがあります。
また、プログラミングの基本として分岐処理や繰り返し処理があります。
他人が書いたプログラムを改造するための予備知識として、上記のような文法をセミナーで説明しています。
先日のセミナー(2013/8/4) では、この文法の説明のために「桃太郎」のたとえ話を使いました。
桃太郎のお話はみなさんもご存知の通りですよね。
「むかしむかしあるところに、おじいさんとおばあさんが住んでいました。
おじいさんは山へ芝刈りに、おばあさんは川へ洗濯に行きました。
おばあさんが川でじゃぶじゃぶ洗濯をしていますと、川の上流から大きな桃が、どんぶらこ、どんぶらこと流れてきます。・・・」
桃太郎プログラム
たとえ話の桃太郎プログラムでは、登場人物のおじいさん、おばあさん、桃、桃太郎、サル、キジ、犬などを動かして、この桃太郎のお話を再現します。
この登場人物がオブジェクトなんですね。
「おじいさんオブジェクト」と「おばあさんオブジェクト」と「桃オブジェクト」。
とりあえず、この3つを使いましょう。
桃太郎プログラムの動きを説明すると、Wordマクロのプログラミングで重要なことを、一つ一つ説明できるんです。
登場人物を特定する
例えば、桃太郎の「むかしむかしあるところに」というフレーズ、これプログラミングでは完全にNGです。
登場人物がどこの誰なのか、完全に特定できるまで定義する必要があります。
だから、「おじいさんオブジェクト」と「おばあさんオブジェクト」のそれぞれについて、「むかしむかし→いつの時代?」、「あるところに→どこ?」というのをしっかり定義して、この二人を特定するところからお話が始まります。
登場人物を動かす
そして、この「おじいさんオブジェクト」と「おばあさんオブジェクト」を動かすんですよね。
「おじいさんオブジェクト」には、山に行ってもらいます。ここでも、「山」を具体的に指定する必要がありますね。
「おばあさんオブジェクト」には、川に行ってもらいます。多摩川にしましょう。
「桃オブジェクト」も色、直径などをしっかり定義して、多摩川を「どんぶらこ、どんぶらこ」と流れてもらう必要がありますね。
流すときに、どこから流すか?って重要ですよ。
「おばあさんオブジェクト」の上流側から流すんです。だって、「おばあさんオブジェクト」に拾われないといけませんから。
ひたすら情景を思い浮かべながら、登場人物を動かしていきます。
動かす=メソッド
指定する=プロパティ
ですよね。
これが桃太郎プログラムです。
Wordマクロも物語を完成させている
実は、プログラムって1つのお話を完成させているんです。
Wordマクロの場合、文字列オブジェクト、表オブジェクト、文書オブジェクトなどの登場人物を動かして、実行したいお話を作るのです。
プログラマーは、どういう登場人物がいて、どのように動いてもらったら(物語を展開したら)、望みの結果を得られるのか知っています。
サルとキジと犬が登場人物にいて、これらがどういう役割を担えるのか知っていないと、鬼を退治するというお話を作ることができません。
プログラミングをするときに、どんな登場人物がいるのか知っているということは本当に重要なんです。
あと、プログラムが上手な方は、登場人物が動きやすいような場面設定を丁寧に作っています。
おばあさんオブジェクトが桃オブジェクトを拾いやすいように、桃オブジェクトを流します。
「とりあえず桃オブジェクトを流せばいいんでしょ?」という姿勢では、おばあさんオブジェクトが桃オブジェクトを拾えないことになるかもしれません。
ストーリー展開に欠かせないのが分岐処理と繰り返し処理
このように桃太郎の話を目の前に再現させようとすると、プログラミングの要素が必要になってきます。
だから、話はいくらでも拡がります。
桃太郎の話を考えていたら、条件分岐も繰り返し処理も、実はストーリー展開には欠かせない要素だということに気がつきました。
おばあさんオブジェクトが桃オブジェクトを無事拾うことができたら?
拾えなかったら?
If ステートメントで話を展開しますよね。
セミナーでは、もっと細かくWordの要素と組み合わせつつ、笑いをとりつつ(私的には笑いのネタを入れています)、紹介しています。
「ストーリーを思い浮かべて、オブジェクトを一緒に操作する」、そういう体験をしていただきました。
Wordマクロセミナーのプログラミング編。ますます楽しくなってきました(笑)。