2008年11月28日

プロパティorメソッド?

昨日の記事のひどいミスに続けて、よくやってしまいがちなミス話を。

本当は「メソッド」なのに、うっかり「プロパティ」と書いてしまうことがあります。
特に、オブジェクトを返すタイプのメソッドです。

たとえば、埋め込みグラフの集合を表すChartObjectsコレクションを返すのは、ChartObjectsプロパティではなくChartObjectsメソッドです。
OLEObjectsやDrawingObjectsも同じで、どうも「〜Objects」と付くのはまずメソッドと考えていいのか……と思ったら、ListObjectsのような例外もありましたね。(^^;)
(ちなみに、WebサイトのDrawingObjectsの記事ではこれまで、DrawingObjectオブジェクトの問題だけでなく、この部分でも間違えていました。申し訳ありません)

これらの機能は、仮にプロパティであったとしても、その働き方に大して違いがあるとは思えません。
コードの中での使い方もほとんど同じなので、間違えて覚えていても、使う際の支障にはまずなりません(ヘルプで調べるときに探しづらい、という問題はありますが)。

要するに、単にそれらの機能の“作られ方”が違うというだけのことです。
VBAのプロシージャでいうと、メソッドはSubプロシージャまたはFunctionプロシージャであり、プロパティはPropertyプロシージャに相当します。
そして、どちらかといえば古いタイプのオブジェクトのほうが、その取得にメソッド(VBAのプロシージャでいうと、オブジェクトを返すFunctionプロシージャ)が使用されています。

一方、グラフシートの集合を表すChartsコレクションを返すのは、ChartsメソッドではなくChartsプロパティです。
この記事でも書きましたが、ヘルプの解説の中で一部「Chartsメソッド」などと書かれているところがあったりするのは、この機能が、もともとメソッドであったのが、途中でプロパティに変更されたからだと思われます。

このようなプロパティは、実はChartsだけではありません。
この話は、このへんで書いたこととも関係して、結構込み入った話になりそうなので、次回、改めて続きを書きたいと思います。
posted by 土屋和人 at 08:58| Comment(0) | TrackBack(0) | Excel
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/23503414
※言及リンクのないトラックバックは受信されません。

この記事へのトラックバック