昨日の記事のひどいミスに続けて、よくやってしまいがちなミス話を。
本当は「メソッド」なのに、うっかり「プロパティ」と書いてしまうことがあります。
特に、オブジェクトを返すタイプのメソッドです。
たとえば、埋め込みグラフの集合を表すChartObjectsコレクションを返すのは、ChartObjectsプロパティではなくChartObjectsメソッドです。
OLEObjectsやDrawingObjectsも同じで、どうも「〜Objects」と付くのはまずメソッドと考えていいのか……と思ったら、ListObjectsのような例外もありましたね。(^^;)
(ちなみに、WebサイトのDrawingObjectsの記事ではこれまで、DrawingObjectオブジェクトの問題だけでなく、この部分でも間違えていました。申し訳ありません)
これらの機能は、仮にプロパティであったとしても、その働き方に大して違いがあるとは思えません。
コードの中での使い方もほとんど同じなので、間違えて覚えていても、使う際の支障にはまずなりません(ヘルプで調べるときに探しづらい、という問題はありますが)。
要するに、単にそれらの機能の“作られ方”が違うというだけのことです。
VBAのプロシージャでいうと、メソッドはSubプロシージャまたはFunctionプロシージャであり、プロパティはPropertyプロシージャに相当します。
そして、どちらかといえば古いタイプのオブジェクトのほうが、その取得にメソッド(VBAのプロシージャでいうと、オブジェクトを返すFunctionプロシージャ)が使用されています。
一方、グラフシートの集合を表すChartsコレクションを返すのは、ChartsメソッドではなくChartsプロパティです。
この記事でも書きましたが、ヘルプの解説の中で一部「Chartsメソッド」などと書かれているところがあったりするのは、この機能が、もともとメソッドであったのが、途中でプロパティに変更されたからだと思われます。
このようなプロパティは、実はChartsだけではありません。
この話は、このへんで書いたこととも関係して、結構込み入った話になりそうなので、次回、改めて続きを書きたいと思います。
2008年11月28日
この記事へのコメント
コメントを書く
この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/23503414
※言及リンクのないトラックバックは受信されません。
この記事へのトラックバック
http://blog.sakura.ne.jp/tb/23503414
※言及リンクのないトラックバックは受信されません。
この記事へのトラックバック