VBAプログラミングを始めると、必ずでてくるしとりあえず覚えてほしいのが
(これがある程度分かってないと説明しづらい)
オブジェクト・コレクション・プロパティ・メソッド
です。
やってるうちに、なんとなく分かってくきますが、これらの関係がわからないとHELPをみても何のことやら・・・
そこで、私なりの解釈で恐縮ですが簡単に説明します。
オブジェクト
(Object) :
物・物体・物体・対象 のことです。 エクセルまたはVBAで操作出来るすべてのものがこれにあたります。メニュー・セル・シート・ファイルなど処理する対象のことです。
エクセルでは Sheet や Range
コレクション
(Collection)
:
収集・集合 のことです。オブジェクトの集まりをあらわします。Sheet のコレクションは Sheets で s(複数形)が付いただけです。でも
Ranges はありません、そのうち分かります (無責任)。
プロパティ (Property)
:
直訳すると所有物・財産・所有地です。
オブジェクトの持つ値・状態のことをプロパティと呼びます。
メソッド (Method)
:
直訳すると方法・道筋です。オブジェクトが出来る動作(命令)です
(私はずーっとメゾットだと思ってた。)
ステートメント (Statement)
:
直訳すると文・命令文・陳述・申し立て ですが私的には予約語(?)みたいなものです。
(例 Do...Loop ,For...Next ,On Error など)
直訳:バビロン&れいぞー
犬に 例えましょう(やっと犬が使える)
ここに「 れいら 」という一匹の犬がいます。
犬(れいら)(オブジェクト)は犬科(コレクション)の犬(オブジェクト)です。
この犬一匹一匹の体重や毛の色などがプロパティーで、
この犬一匹に対し『お手・おすわり・伏せ』などの命令がメソッドです。
余計分かりにくくなったところで、実際のエクセルでの例を説明します。
と、思ったんですがわかりやすいたとえがあるので、ご紹介します。
そのあとのにサンプル・・・
★★★★★★★ 角田さんの作ってくれたたとえ
★★★★★★★
『引数』は【関数】や【サブルーチン】を利用する時に、
関数やサブルーチンに対して
・動作条件を指定する
・処理結果を受け取る
という為に使うものです。機能的にはこれだけです。
例え話で説明してみますと。
サブルーチン:八百屋へお使いを頼んだ子供
処理内容 :お買い物
引数1 :買い物リスト
引数2 :サイフ
引数3 :買い物かご
単に「八百屋へ行ってきて」では子供も何を買ってくればいいのか判りませんよね。
そこで「買い物リスト」に”大根1本”と書いて持たせてやります。
買い物にはお金が要りますから「サイフ」に”千円”を入れて持たせてやります。
買った物を裸で持ってくるのはなんですから、「買い物かご」も持たせましょう。
『さあ、いってらっしゃい』と子供を送り出すのが【サブルーチンの実行】に相当します。
『サブルーチン:子供のお使い』は八百屋さんに着くと、引数『買い物リスト』に書いてある
”大根1本”と引数『サイフ』に入っている”千円”で買い物をします。
八百屋さんは、大根とお釣りをくれたので、大根を引数『買い物かご』に入れ、お釣りを
引数『サイフ』に戻します。
^^^^
『サブルーチン:子供のお使い』は家に帰ってくると、引数『買い物かご』から大根を、
引数『サイフ』からお釣りをお母さんに渡します。
このように、引数には、使い方によって
・値を渡すだけ ‥‥‥‥‥‥ 買い物リスト
・値を受け取るだけ ‥‥‥‥ 買い物かご
・値を渡す&値を受け取る‥‥ サイフ
の3種類があります。
また引数には【属性】があります。
「買い物リスト」の属性は”大根1本”などの【八百屋さんで売っている物】
「サイフ」の属性は【お金】
「買い物かご」の属性は【買った物を入れる】
「買い物リスト」に”ビール”と書いたり、「サイフ」に”葉っぱ”を入れて
子供を八百屋さんに送り出しても買い物は出来ませんよね。
引数には、その属性に合った値を設定しなければ、正しく動作しません。
『エラーが有ります』というメッセージを表示してExcelに怒られてしまいます。
子供が八百屋さんに怒られて、「買い物できないよ。どうする?」と
お母さんに電話するのに相当します。
※参考文献 エクセルファンクラブ
http://cgi.fuji.ne.jp/~fj2094/cgi-bin5/wwwlng.cgi?print+200010/00100128.txt
☆☆☆☆☆☆☆☆☆☆☆☆☆
サンプルコード ☆☆☆☆☆☆☆☆☆☆☆☆☆☆
Sub Sample()
' セルA4を選択(Selectメソッド)
Range("A4").Select
' セルA4のバリュープロパティーを"犬はいいね"に設定
Range("A4").Value = "犬はいいね"
' 一番目のシートを選択 (Selectメソッド)
Sheets(1).Select
' 一番目のシートの Name プロパティ−を" 犬でも分かる" に設定
Sheets(1).Name = "犬でも分かる"
End Sub
後
ディレクティブやキーワードや関数などありますがあまり引っかかったことがないので、今後使ったらその都度説明していきます。 最後にVBAはほとんどが英語です。すごく使いやすいバビロン(愛用してます)と言う翻訳ソフトがあるので行ってみて下さい。
全部英語なので DownLoad
という文字を探して突き進んで行けば何とかたどり着けると思います。
ソフト自体は日本語です。(何でこれがフリーなのか Winamp
以来の不思議です。)ここからいけます。
|