プロが教えるわが家の防犯対策術!

仕事で必用になり、プログラミングを学んでいる者です。
VBAでの基本的なことですが、教えていただきたいことがあります。

例えば・・・
Cells(i, j).value = "あああ"
のようなステートメントがあったとき
Cells(i, j) の部分をオブジェクト
.value の部分をプロパティと考えていいですか?

もしそうだとすると、
Cells(i, j).Interior.ColorIndex = i
のようなステートメントは
Cells(i, j) オブジェクト
.Interior プロパティ
.ColorIndex プロパティのプロパティ??

ということになるのでしょうか?

ちょっと概念が整理できていません。

よろしくお願い致します。

A 回答 (3件)

こんばんは。



プロパティというのは、一般業界では、不動産のことをさしますが、コンピュータの世界では、「性質」や「特性」を表します。

オブジェクトというのは、日本語で言えば、「対象」ですが、複合的な要素を持っているもののことをさしています。

その複合的な要素の特徴は、また分かれていきます。

ただ、概念論から、VBAやプログラミング言語を覚えることはやめたほうがよいのです。私たちは、オブジェクトの実体というものを何かを知る必要がありません。哲学の「構造主義」の言葉で、「潜在的共存の多様性」という言葉がありますが、それがオブジェクトのことです。それを把握するのは、困難だと思うのです。

例えば、テレビ受像機のメカニズムがどのようになっているのか、細かく分けて知る人は少ないのです。スイッチを押す、ボリュームを上げ下げする、チャンネルを換える、それぞれは、プロパティです。

私たちは、ボリュームの位置さえ知っていれば、後は、回すのかスライドさせるのか、ボタンを押し続けるのか、それは、それぞれのプロパティのプロパティによって状態を変えることは出来ますが、まず、その位置さえ知っていれば、何とかなりそうなのは分かります。

逆にいうと、私たちは、音を下げたいのか上げたいか、という目的によって、そのプロパテイを知り、そのオブジェクトに働きかけることになるわけです。言い換えると、音を上下したいという目的のために、プロパティが存在し、オブジェクトが存在すると考えたほうが良いのではないでしょうか?

私たちの時代では、もう、オブジェクトが何であるのか、どんな格好や特性を持っているかを知ることは、ほとんど困難だと思ってよいと思います。それは、そうした言語やソフトウェアが必ずしも人間がその細部を分かって作られているということではないのです。

1970年代の組立てマイコン・キット時代だったら、ビットによってコンピュータはどう反応するか、ということをたどることが出来ました。初期の段階では、天才的なプログラマは、マシン語を生で扱うことが出来たそうです。しかし、もう、私たちには手の届かないところにあるのだと思います。

慣れないかもしれませんが、その目的を以って、プロパティを知り、そのオブジェクトを知るということを心がけたほうが良いと思います。
    • good
    • 0
この回答へのお礼

大変わかりやすい説明、ありがとうございました。
とても参考になりました。

私個人的な問題ですが、どうも概念論から入る癖があるようでして、それが物事をより複雑に捕らえてしまうようです。
ある意味目から鱗でした。

実はオブジェクト指向というのもよくわかってなく、その感覚を理解したいと思っているのですが、Wendy02さんのご回答の中に何かヒントがあるように思いました。

的確なアドバイス大変ありがとうございました。

お礼日時:2007/04/19 15:17

オブジェクト ブラウザで確認しては如何でしょう。

    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2007/04/19 15:17

プロパティとは、あくまでもオブジェクトの属性であり、プロパティ自体も何らかのオブジェクトであったり、単なる数値だったりします。



ExcelVBAの画面でヘルプを出して「Interior」で検索すると、
Interior プロパティ
Interior オブジェクト
の2つが出てくると思います。

Cells(i,j)はRangeオブジェクトですが、RangeオブジェクトはInteriorオブジェクトをInteriorという名前のプロパティとして持つ、ということです。

何かうまく説明できなくて、よけいややこしくなったかもしれませんが…。
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2007/04/19 15:17

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!