プロパティは次の二種類の使い方がある。
オブジェクトはその状態を値として持っている。例えばセルの場合は、背景色、フォント色、セル幅・・・など。それらの値の確認(値を取得)、もしくは状態を変更(値の設定)はプロパティによって行うことが出来る。
オブジェクトを取得するためにもプロパティを使用する。
というよりも、プロパティによってしかオブジェクトは取得できない。
たとえば・・・(以下、小難しい理屈なので、読みたくない人は読まなくていい)
WorkSheets("Sheet1").Select
Worksheets.Item("Sheet1").Select
2行とも同じSheet1が選択される。2行目の書き方が(たぶん)VBA設計者の意図する本来のコーディングである。どちらも「Sheet1というオブジェクトを選択する」と慣例的に表現する。そのほうが理解しやすいと思う。
が、
すごーく回りくどく表現をするならば、次のようになる。
「WorkSheetsプロパティによってWorkSheetsコレクションオブジェクトを取得し、取得したコレクションからItemプロパティで"Sheet1"というIndexのWorkSheetオブジェクトを取得し、取得したオブジェクトに対してSelectメソッドを実行する。」
ヘルプではよく次のように書かれている。(例はActivateメソッド)
expression.Activate
expression 必ず指定します。オブジェクトへの参照を表すオブジェクト式を指定します。
VBAの記述ではオブジェクトを直接表現しない、ということだろう。このようにVBAではプロパティを介してオブジェクトを間接的に表現するという手法を採用している。
expressionとは一般英語では「表現されたもの」、数学用語で「数式」の意。
ここには算術の「数式」が書かれるわけではなくて、プロパティによりオブジェクトが「表現されたもの」が書かれるので、expressionを「数式」という意味で訳すよりも、一般英語の訳、「表現されたもの」のほうが該当しているような気がする。
ちなみに、VBAの兄貴分であるVisualBasicのヘルプでは同じくActivateメソッドで
object.Activate
Activate メソッドの構文の斜体文字 "object" は、ユーザーが指定する情報の
プレースホルダです。この場合は、オブジェクトを返すコードを指定します。[後略]
となっている、この書き方のほうがわかりやすいように思う。(「プレースホルダ」というのがこれもまた少し聴きなれない言葉だが)VBではプロパティによって取得、という回りくどい方法ではなくて、Object名(参照名)を直接書くものだそうだから、このような書き方なのだろう。
前(メソッド(Method)) 目次 次(モジュール(Module)・プロジェクト(Project))
SEO | [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送 | ||