FC2ブログ
カレンダー
05 | 2016/06 | 07
- - - 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 - -
プロフィール
最近の記事
最近のコメント
最近のトラックバック
カテゴリー
月別アーカイブ
FC2カウンター
ブログ全記事表示
ブログランキング
エクセルVBAで継承しちゃうよ!の巻 第3回
メインプログラムとその実行結果を次に示します。

メインプログラム

Option Explicit

Sub Main()

Dim Dog As Object, Cat As Object

Set Dog = CreateUserObject("DOG")
Set Cat = CreateUserObject("CAT")

Debug.Print "犬は"; Dog("LEGS"); "本足です。"
Debug.Print "猫の尻尾は"; Cat("TAIL"); "本です。"
Debug.Print repeatCRY(Dog, 3)
Debug.Print repeatCRY(Cat, 2)

End Sub

実行結果

犬は4本足です。
猫の尻尾は1本です。
ワン
ワン
ワン

ニャー
ニャー


VBAではオブジェクト変数の代入は頭にSetをつけるので、DogとCatにオブジェクトが代入されていることはまちがいないですよ。次に実行結果をみてください。なぜ犬が四足とわかるか。DogがMAMMALクラスを継承しているからです! 猫の尻尾は1本!! なぜならばMAMMALだから!!!

どーですかみなさんどーですか!どーですかぁああああ!!! これはほぼほぼ継承と断言して過言でないと言い切れないとは限らなあい!!!!!!!!!!!

repeatCRYはMAMMALクラスのメソッドで、指定された回数鳴き声を表示します。同じコードを共有しつつ、犬はワンワンワン、猫ニャーニャー!!!!!!!!

どーですかぁああああ!!

VBAで継承。あなたは今奇跡の目撃者となったあああああ!!

もはや全米が泣いた。映画化決定!!


あー騒いだ騒いだ。夜も更けたし寝るとするか。
トシちゃんお休みー

ネタバレは次回。



スポンサーサイト



評論/ノンフィクション | 【2016-06-19(Sun) 11:39:48】 | Trackback:(0) | Comments:(0)
エクセルVBAで継承しちゃうよ!の巻 第2回
クラスとは何かというと、実行するプログラムの外側にあり、プログラムから参照できる鋳型であると考えられます。

んじゃシートにクラスの定義を書いとけばプログラムから参照できるじゃん。クラスモジュールに書くとガチガチにインタプリタに解釈されてVBAが継承をサポートしてないからできないって話になってしまうが、シートならば少なくともユーザーからはより自由に参照しやすくなる。

その先のことはまだ見えないが、とりあえずやってみよう。

で、次のような表を作りました。後からプログラムで扱いやすいようにテーブルオブジェクトにしておきましょう。テーブル名はMAMMAL(哺乳類)とします。

テーブル名:MAMMAL
mammal.png

ほらね、ほらほら。ほら。すでにそこはかとなく継承の香りが漂ってきました。

哺乳類出したってことは、このあと犬とか猫とか出てくること決定だよね。継承って絶対そんな感じ。でなきゃ人間の年齢とか性別とか。でなきゃテレビのスイッチがどうのこうの。うぜー。ぼのぼののシマリスか!(解説:説明が回りくどい上にヤマもオチもなくつまらない話の場合のツッコミ例)

ほんとどうなのかなー。次に犬と猫、絶対出るとわかってて出す? 出しますか? もしあなたが新人漫才師だったら本当にそれでどうなのか、マジ胸に手を当てて考えていただきたい。

でもまあ、出しちゃいますか。

どーん!

テーブル名:DOG
dog.png

テーブル名:CAT
cat.png

出た―! ますだおかだか! もとい、ますだおかだの岡田か!

出ました犬と猫。キタコレEXTENDS。これ継承だよ継承。もう継承の予感しかしない。

後はこれをプログラムから参照すればよいね。

熱い期待を胸に、次回へ続く!





評論/ノンフィクション | 【2016-06-17(Fri) 06:14:12】 | Trackback:(0) | Comments:(0)
エクセルVBAで継承しちゃうよ!の巻 第1回


エクセルVBAで継承しちゃうよ!

よくある質問:implementsのこと? あれインターフェースだから。継承じゃないよ。

ちがいます。知ってます。

よくある質問:じゃー無理。

想像してください。CでC自身のコンパイラが作れるならVBAでインタプリタを作れるかもしれないと思いませんか?

よくある質問:もしかしてVB? VBで遅くて重い表計算ソフトを作る話?

まったくちがいます。エクセルVBAしか使いません。

よくある質問:無理。破綻確定。VBAでエクセルを改造できないでしょ?

だから、イメージですよ。想像力を使ってください。自由な想像こそ創造の母なのです。

よくある質問:何言ってんのかわかんないけど、仮に何か作っても遅くて重くて実用性皆無であることはまちがいない。

問題は時間じゃない! 愛だ。エクセルへの愛があるかないかだ!

よくある回答:まったくないです。

いや、ちょっと待って。一度落ち着こう? おれだって仕事でむりくり使ってるだけで本当はJavaScript勉強したいし作るならゲーム作りたいよ。

ただ、今日ちょっとおもしろいコードのアイデアを思いついたので、みんなに見てもらっておもしろがってもらえたらいいなと思っただけだから。今夜もう一度考え直してみて、おもしろかったら次回アップするよ。

というわけで、まさかの第2回へ続く!!



評論/ノンフィクション | 【2016-06-15(Wed) 19:45:55】 | Trackback:(0) | Comments:(0)

お薦めサイト

福岡ストーリー|無料で読みやすい小説・ライトノベル