dポイントプレゼントキャンペーン実施中!

オブジェクトブラウザを見てもよくわからなかったのですが
メソッドは戻り値はなしで、
プロパティは戻り値を返す、
と言う認識で合ってますか?

A 回答 (2件)

こんばんは。



オブジェクト指向を勉強すると分かります。
VBAでは、完全に、オブジェクト指向を書くことはできませんが、ある程度のことは可能です。
一般的には、メソッドは動作を表し、プロパティはオブジェクトの性質を表します。

オブジェクトの説明すると、
オブジェクト--人間
(インスタンス--各個人)
プロパティ--身長、体重などの性質
メソッド--動作、仕事

クラス(オブジェクトの設計図)で考えると簡単な区分けですが、
Sub が戻り値を返さないメソッド、
Function が、戻り値を返すメソッド、

Property(プロパティ・プロシージャ)は、二種類あって、
読み取り用と、Property Get で、
書き込み用は、Property Let や Property Set があります。
Property は、Function と等価で、クラスで用いられるものです。

したがって、戻り値を返す・返さないという区分けでは区別できません。

#1さんのリンク先の
http://d.hatena.ne.jp/micdonalds/20101122/129042 …

× Rangeオブジェクトのメソッドの「End」(正しくは、プロパティです)

Range("B4").End(xlUp).Select

Rangeオブジェクトに対するEndは、End プロパティといいます。

とても間違えやすいです。手動では、ワークシートで矢印キーを利用して、セルの位置を取得するから、メソッドと思いがちですが、本来、End は、サイズや大きさのことです。それ反して、Findはメソッドです。仮想空間ではあるのですが物理的な検索です。

導入部分は、私と考え方が違いますが、入門編として、ここがよいと思います。
http://allabout.co.jp/gm/gc/297719/

しかし、文中の「ピリオドの後はプロパティなのかメソッドなのか」ということは考えなくてよいと思うのです。我々は、別に、プロパティ、メソッドだから、どうするかと考えてコーディングするわけではなく、クラスで設計する時、意識するだけだからです。
    • good
    • 0
この回答へのお礼

ありがとうございます。

お礼日時:2014/07/13 21:25

多くのメソッドは戻り値がなく何かの動作を指定するものですが、たとえば、Findメソッドは検索結果を返しますので、メソッドは戻り値がないとは言えませんし、プロパティは戻り値を返すだけではなく項目の設定もできます。



こちらに非常に簡単ですが、プロパティとメソッドについて説明がされています。
http://d.hatena.ne.jp/micdonalds/20101112/128956 …
http://d.hatena.ne.jp/micdonalds/20101122/129042 …

もっとくわしく両方とも説明されているページを探そうと思ったのですがうまく探しきれませんでした。
    • good
    • 0
この回答へのお礼

ありがとうございます。

お礼日時:2014/07/13 21:25

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