● Access2000VBA・Excel2000VBA独学~用語:VBAプログラミングでの「プロパティ」 について
VBAを覚えるときに重要なことの一つとして「ヘルプを自力でなんとか読めるようになる」ということが挙げられます。
ということを以前書いたのですが、そのとき、まず最初に「オブジェクト」というものについて書かせて頂きました。
今回はその次に重要な「プロパティ」についての補足説明です。
「オブジェクト」「プロパティ」「イベント」「関数」・・・、そういったものを理解する際に、例えば、「最初から厳密な意味を知ろうとする」と、なかなかイメージがしにくくなってしまいます。
ですので、初心者のうちは、「こんな感じ」で覚えておいていいと思いますし、ちょっとくらい乱暴な考え方でも大丈夫だと思います。
では、「プロパティ( property )」についてです。
もともとの意味は財産,資産.所有物、といった意味らしくて、
4【可算名詞】 (ものの)特質,特性 〔of〕.
といった意味もあります。
VBAのプロパティは、この「特質、特性」と考えて頂ければ良いと思います。
「オブジェクト」は「目に見えるボタンとかウィンドウとか、アイコンとか、もオブジェクトだし、もし目に見えなくても何らかの機能を有するもの(何らかの裏方の自動処理機能とか、集計機能とか、メッセージ伝達機能とか)」と説明しました。
「プロパティ」はその「オブジェクト」の「特質、特性」を設定するものです。
色や形、動き方、(目に見えないオブジェクトならデータの入れられる上限個数とか)など、「オブジェクト」の「性質」を決めるものです。
現実の世界と照らしあわせると、オブジェクトは、例えば、「自動車」「トンカチ」「キリ」「ATMシステム」、などです。
まず、各オブジェクトを「機能」とか「ユニット」ととらえると以下のようなものとなります。
(01)「自動車」→主に人や荷物を運搬するという機能を有したユニット
(主に人や荷物を運搬することができる機能)
(02)「トンカチ」→釘を打つ、という機能を有したユニット
(釘を打つ、ということができる機能)
(03)「キリ」→木に穴を空ける、という機能を有したユニット
(木に穴を空ける、ということができる機能)
(04)「ATMシステム」→目には見えないけど、全国の銀行をオンラインでつなぎ、銀行端末にて現金の預け入れや引き出し、記帳等々を自動的に行う、という機能を有したユニット
(全国の銀行をオンラインでつなぎ、端末にて現金の預け入れや引き出し、記帳等々を自動的に行う、ということができる機能)
それに対して、プロパティは次のような感じになります。
例えば自動車の場合・・・
(01)「自動車」のプロパティ
タイヤの大きさ:直径70cm
タイヤの種類:ノーマル
ボディの色:黒
全長:2.5m
ドアの数:5ドア
エンジン排気量:1500cc
最高速度:200Km/H
直進可否:True(Yes)
後進可否:True(Yes)
雨防水可否:True(Yes)
水中運行:False(No)
とまあ、こんな感じになります。
(02)「トンカチ」のプロパティ
柄の長さ:20cm
柄の太さ:2cm
柄の材質:木材
柄の色:ベージュ
柄の形:直線
頭部の重さ:500g
頭部の形:釘抜きつき
頭部の色:黒
(03)「キリ」のプロパティ
柄の長さ:20cm
柄の太さ:2cm
柄の材質:木材
柄の色:ベージュ
柄の形:直線
先端部の形(上方向から見た場合):四角形
先端部の根本の太さ:2mm
先端部の色:黒
先端部の長さ:3cm
先端部の材質:鋼
あと、プロパティには、「既定値」が自動的に決められているプロパティ項目もあります。
例えば「自動車」のプロパティのうち、以下のようなものは、どんな自動車であっても大抵同じです。
・直進可否:True(Yes)
・後進可否:True(Yes)
・雨防水可否:True(Yes)
・水中運行:False(No)
なので、このようなプロパティは、改めてユーザーに設定させることもありません。
VBAの場合でも同様で、あらかじめ、値が(長さとか、Yes/Noのいずれかとかが、)既定で設定されています。
よって、プログラムコードを書く画面(VBE=VisualBasicEditorといいます)に、オブジェクトの各種のプロパティの値が表示されている場合、ユーザーが特に指定しなくてもあらかじめ決められた値を見ることができます。
また、プロパティの値が一部隠れていて、全部は見えていない場合もあります。
その場合も、既定の値が、あらかじめ、設定されています。
そういった目に見えてこないプロパティの値を変更する際は、プログラムによって、プロパティを設定するかたちとなります。
また「トンカチ」と「キリ」のように、似た感じのオブジェクトには、同じプロパティ項目が存在する場合もあります(設定値は同じだったり違ってたりですが)
例えばトンカチとキリの場合、次のようなプロパティ項目が同じです。
・柄の材質:木材
・柄の色:ベージュ
・柄の形:直線
これはVBAでも、実際に、「テキストボックス」と「ドロップダウンリスト(コンボボックス)」の両方に、
・背景色
・境界線の形
・幅
・高さ
といったプロパティ項目が存在するのと同じです。(同じですって・・・逆かな?なんか文章が、日本語が変になってしまいました・・・)
VBAプログラミングのプロパティにもこのようなものがあります。
あと、「ATMシステム」のプロパティについても少し書いてみます。
(04)「ATMシステム」のプロパティ
(現実には違うかも。テキトーに書きました。)
取扱い時間帯:8時45分~19時
扱い可能口座種類:普通、当座
一回あたりの振込限度額:100万円
一回あたりの引き出し限度額:30万円
色:アイボリー
材質:ブリキ板
タッチパネル:Yes
画面フォント:ゴシック
画面色数:256色
システム開発言語:コボル
お札つり線排出昨日:Yes
硬貨つり銭排出機能:Yes
防犯カメラ:あり
キャッシュカード読み取り機能:Yes
通帳読み取り機能:Yes
通帳印字機能:Yes
振込カード自動作成機能:Yes
顔認証:No
指紋認証:No
全国通信機能:Yes
防犯通信機能:Yes
両替機能:No
通信ケーブル:光ファイバ
・
・
・
とまあ、こんな感じになるでしょうか?
ATMは機械ですし、システムの裏側でオンラインでつながっていて、表には見えない部分も結構ありますのでVBAの実際のプロパティとなんとなくイメージ的に似ている雰囲気かもしれませんね。
表に出てこない隠れたプロパティ(もちろん既定値は設定済み)も、いっぱいありそうですね。
みなさんも、身の回りのものの「プロパティ」、一度 考えてみてください。
「オブジェクト」と「プロパティ」の関係、ここまでの説明でなんとなく分かっていただけましたでしょうか?
何度も繰り返してしつこくてすみませんが、簡単にまとめますと、次のような感じです。
★「オブジェクト」
目に見えようがみえまいが、なんらかの機能を有するもの。機能の集合体。ユニット。
※「目に見えようがみえまいが」
=画面に表示されていようがいまいが、・・・
=ボタンやアイコンや入力欄(テキストボックス)やウィンドウでなくても、・・・
=画面のウラ側で黒子として動作できる(動作可能な)、・・・
という感じです。
★「プロパティ」
「オブジェクト」の「特質、特性、状態」。
もしくは、「オブジェクト」の「特質、特性、状態」などを設定するもの。
色や形、動き方、(目に見えないオブジェクトならデータの入れられる上限個数とか)など、「オブジェクト」の「性質」を決めるもの。
「オブジェクト」のサブ機能の性質や状態を設定することもあります。
ほとんどのプロパティ項目はユーザーがクリックや文字入力で設定できます。
たまに、(隠されていて)VBAプログラムでしか設定できないプロパティ項目があります。
プロパティの説明はだいたいこれで終わりです。
なんとなくイメージして頂けましたでしょうか?
かえって分かりづらくしてしまってたらごめんなさい!!!
★関連記事
Access2000VBA・Excel2000VBA独学~VBAプログラミングとはどんなプログラミング方式なのか?(巷では個々の細かい用語の説明ばかりで、意外と短くはまとめられていないこと)
Access2000VBA・Excel2000VBA独学~VBAプログラミングとはどんなプログラミング方式なのか?(簡易版)
=====================