【HOME】 【INDEX】 【第1回】 【第2回】 【第3回】 【最終回】
次回は、プログラミングの基礎 【第1回】
VBAの概念を知ろう編 最終回
クラスとインスタンスの意味をしろう!!
てな、ことをスローガンにしましたが、
ちょっと、わかりにくい、説明もしにくい言葉です。
別に、このことを知らなくてもVBAは作成できますが、
オブジェクトとプロパティ、メソッドの関係を知るには、とても重要なものと思います。
そして、それを知るうえでも大変重宝するオブジェクト ブラウザもありますので、
今はよくわからなくても、「ああ、こんなものがあるんだなぁ〜」
と思うだけでもいいと思います。
ここは我慢して嫌がらずに読んで見てください。
そして、将来あなたが、もっとVBAを知る手助けになる道具だということを、
覚えておいてくだされば、結構だと思います。
1 オブジェクトの定義 「クラス」とインスタンス
「クラス」は、あらかじめVBAで用意されたオブジェクトの定義となるものです。
と、いきなりこんなことを言ってもチンプンカンプンですよね。
では、さっそく 「オブジェクトブラウザ」なるものを開いて見ましょう!!
●VBEを開いてみてください。(VBEの開き方は、自動マクロの使い方
第2回VBA? でも解説しているので、ここでは開けるものと解釈します)
そうすると↓の標準メニューに注目してください。
(標準メニュー)
少しはでなアイコンが3つ並んでいますね。
左から、プロジェクト エクスプローラ、プロパティ、そして オブジェクト ブラウザ と
アイコンが3つ並んでいます。
●プロジェクト エクスプローラ
プロジェクト エクスプローラをクリックすると、↓の図に示すエクスプローラの
ような、窓が開きます。
これによって、それぞれのオブジェクトを選択することにより、
瞬時に、その場所へ記述するコードへ行くことができます。
●プロパティ
プロパティを開くと、今、アクティブになっている、オブジェクトのプロパティが
窓になって、開きます。そのオブジェクトの持つプロパティがすべて表示されます。
逆に、いえばこれ以外のプロパティはないということを理解しておいてください。
←オブジェクトブラウザを開くアイコン
●オブジェクト ブラウザ
それでは本題のオブジェクト ブラウザを開くアイコン。
これをクリックしてください。
なにやら、英語の分析書のような、やたら英語ばっかりのものが
でてきましたね。
小生も、はじめ(つい最近まで)なんじゃ、これは!! って 感じでした。
これを、ひとつずつ説明することなんか、到底、小生にはできませんし、
(そんな知識もありませんわ (^_^.))
また、そんなこともする必要はないと思います。
(もちろん初心者にとって、ヘルプ自体、難しいですからね、
大変でしょうが、これも時間とともに慣れてくると思います。
要は、習うより、慣れろですわ、・・・
といいながら、まだまだ慣れない小生でござる (^^ゞ
まぁ、いろいろ触ってみてくださいませ!!。)
ブラウザの中のアイコンは、ヘルプにあったので、それを貼り付けておきます。
さて本題に戻りましょう。上から8番目のアイコンが
クラスって書いていますね。
上のオブジェクトブラウザの図をみてください。
この、クラスを表しているアイコンが表示されていますね。
ここではVBAProjectを選択し、Sheet2を選択した状態です。
Sheet1〜Sheet3 そして ThisWorkbookが クラスを表示されています。
そして、クラスの横にあるメンバがこのSheet2に含まれるプロパティ
やメソッドが表示されています。
そして、選択されたオブジェクトの説明が、一番下のWindowに表示されるように
なっています。
次に、ヘルプの説明では、このように表示されていました。
モジュールの中で表記されるConstantsがクラスで選択されて
Constantsのメンバーの中の、
ここでは、「vbTab」が選択されていますね。おわかりですか?
そして、Const っていうのは定数の宣言という意味なんですが、
Const vbTab = " "
と下の欄で説明されています。
つまりvbTabは、VBAであらかじめ宣言された定数で、
vbTabっていう記述が出てくれば、それは 空白で少しあける " " なんだ
ということなんです。
こうしてみてみるとクラスといものがおぼろげにわかってきたのではないでしょうか?
クラスとは、VBAに定められた、定義の集まりなんです。
この、クラス自体をひっぱりだすことはできません。
実体がないともいいます。
ですが、実際には、このクラスをコピーして、オブジェクトを作成しています。
ダミーを作成しているんです、このことを、「インスタンス」といいます。
やっと、この言葉がでてきましたね。
つまり、エクセルで開かれていた、Sheet1〜Sheet3 そして ThisWorkbookなんかも
クラスでインスタンスされた、オブジェクトなんですね。
2 インスタンス
エクセルで使われているすべてのもの、つまりオブジェクトは、VBAで用意されている
クラスのインスタンスで作成されたオブジェクトです。
そして、VBAを扱う、私たちユーザーは、インスタンスで作成されたオブジェクトを使って
プログラムを作成していきます。
それではインスタンスは、VBAでは、どのように作成するのでしょうか?
実は、クラスをインスタンスして、作業するということはありません。
インスタンスを作成するときには、VBEでほとんどが用意されていますし、
直接コードを書いてでも処理ができます。
ユーザーはほとんど、そのことについて、意識する必要はありません。
ただ、プログラム作成で困った時、オブジェクトブラウザでクラスとなるオブジェクトを開き
そして、そのプロパティやメソッドでわからないときは、?で調べれば、VBAのヘルプ
が開きます。(97では教えてくれない項目もありますが・・・(ーー;) )
結構、辞書みたいなもので便利な代物でございます。
故、オブジェクトブラウザ、頭に入れておいてくださいませ!!
今回の最後に
クラスは、オブジェクトの素、そして、クラスを使って、クラスのコピーを
作成することをインスタンスという ということなんです。
え〜、VBAの概念は、一応ここで終わります。
もっと詳しく知りたい人は、ハハハ(T▽T)ノ_彡☆ばんばん!自分で調べなはれ〜
さてさて、次回からは新展開、
「プログラミングの基礎」を始めます。
お楽しみに、じゃわい、 See You !! (=^^=) ニョホホホ
To be Continued …
03/10/17、
03/10/28改編
【HOME】 【INDEX】 【第1回】 【第2回】 【第3回】 【最終回】
プログラミングの基礎 【第1回】