- ベストアンサー
メソッドは戻り値はなし プロパティは戻り値を返す?
オブジェクトブラウザを見てもよくわからなかったのですが メソッドは戻り値はなしで、 プロパティは戻り値を返す、 と言う認識で合ってますか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは。 オブジェクト指向を勉強すると分かります。 VBAでは、完全に、オブジェクト指向を書くことはできませんが、ある程度のことは可能です。 一般的には、メソッドは動作を表し、プロパティはオブジェクトの性質を表します。 オブジェクトの説明すると、 オブジェクト--人間 (インスタンス--各個人) プロパティ--身長、体重などの性質 メソッド--動作、仕事 クラス(オブジェクトの設計図)で考えると簡単な区分けですが、 Sub が戻り値を返さないメソッド、 Function が、戻り値を返すメソッド、 Property(プロパティ・プロシージャ)は、二種類あって、 読み取り用と、Property Get で、 書き込み用は、Property Let や Property Set があります。 Property は、Function と等価で、クラスで用いられるものです。 したがって、戻り値を返す・返さないという区分けでは区別できません。 #1さんのリンク先の http://d.hatena.ne.jp/micdonalds/20101122/1290427869 × Rangeオブジェクトのメソッドの「End」(正しくは、プロパティです) Range("B4").End(xlUp).Select Rangeオブジェクトに対するEndは、End プロパティといいます。 とても間違えやすいです。手動では、ワークシートで矢印キーを利用して、セルの位置を取得するから、メソッドと思いがちですが、本来、End は、サイズや大きさのことです。それ反して、Findはメソッドです。仮想空間ではあるのですが物理的な検索です。 導入部分は、私と考え方が違いますが、入門編として、ここがよいと思います。 http://allabout.co.jp/gm/gc/297719/ しかし、文中の「ピリオドの後はプロパティなのかメソッドなのか」ということは考えなくてよいと思うのです。我々は、別に、プロパティ、メソッドだから、どうするかと考えてコーディングするわけではなく、クラスで設計する時、意識するだけだからです。
その他の回答 (1)
- kkkkkm
- ベストアンサー率66% (1742/2617)
多くのメソッドは戻り値がなく何かの動作を指定するものですが、たとえば、Findメソッドは検索結果を返しますので、メソッドは戻り値がないとは言えませんし、プロパティは戻り値を返すだけではなく項目の設定もできます。 こちらに非常に簡単ですが、プロパティとメソッドについて説明がされています。 http://d.hatena.ne.jp/micdonalds/20101112/1289569631 http://d.hatena.ne.jp/micdonalds/20101122/1290427869 もっとくわしく両方とも説明されているページを探そうと思ったのですがうまく探しきれませんでした。
お礼
ありがとうございます。
お礼
ありがとうございます。