エクセルVBA超入門講座(第4回)オブジェクト、プロパティとは

excel-vba-lecture04 Excelマクロ

前回の講座でセル操作方法について解説しました。詳しくはエクセルVBA超入門講座(第3回)参照ください。

その中で「プロパティ」について触れました。

プロパティの知識ははセルの情報を取得したり、操作したりするために必須の知識です。

また、マクロを作成するうえで必要な「オブジェクト」についても学ぶ必要があります。

今回はオブジェクトとは何か?プロパティとは何か?

それぞれの意味合いと使い方について詳しく解説していきます。

オブジェクトとは

オブジェクト(object)とは操作の対象物のことを言います。

天馬先生
天馬先生

objectは日本語訳で「対象」や「物体」という意味だよね。

マクロにおけるオブジェクトとは操作の対象物のことを意味するよ。

マクロで見ると次のようになります。

object

この例では操作対象の「A1セル」がオブジェクトになります。

マクロはセルだけじゃなく、Excelのシートやファイル自体に対しても操作可能です。

そのとき処理している対象物をオブジェクトと言います。

Excelのシートやファイルに対する操作方法は別の講座で詳しく解説します。

プロパティとは

プロパティとは、セルの属性または動作の状態を示したものです。

マクロで見ると次のようになります。

property

macro-result03

この例では「Valueプロパティ」を使い、A1セルに文字「オブジェクトとプロパティについて学ぶ」を「設定」しています。

プロパティの特徴のうち、「動作の状態」を使った例です。

「属性」と「動作の状態」の違いについて詳しく解説していきます。

属性とは

セルには文字サイズフォント背景色など様々な情報を持っています。

それぞれの情報そのものを属性と言います。

例を見てみましょう。

attribute

この例ではA1セルのプロパティ(属性)は次のものを持っています。

  1. 文字サイズ = 14
  2. フォント = MS ゴシック
  3. 背景色 = 黄色
  4. 値 = 属性とは?

VBAで表すと次のようになります。

  1. Range(“A1”).Font.Size = 14
  2. Range(“A1”).Font.Name = MS ゴシック
  3. Range(“A1”).Interior.ColorIndex = 6
  4. Range(“A1”).Text = 属性とは?
天馬先生
天馬先生

このようにVBAではプロパティ(属性)はあらかじめ決められたコードをドット「.」の右側に書くことで表されるよ。

たけし
たけし

ドット「.」を使って属性を表わすことは何となく分かりましたが、ドットが複数並んでいるのが良くわかりません…

天馬先生
天馬先生

属性の階層について次の章で解説します。

属性の階層について

属性には階層を持っています。

次の例で見てみましょう。

Range(“A1”).Font.Name = MS ゴシック

ここではA1セルのフォント名がMSゴシックである事を表わしています。

もう少し細かく言うと、【A1セル】の「フォント」の「名称」が「MSゴシック」であるという事を表わしています。

ピンとこない方もいるかと思いますので、人間で例えてみましょう。

次のような緑色の衣装を着た女性Aさん(名前:ももこ)の場合

green-woman

  • Aさんの名前は「ももこ」
  • Aさんの洋服の色は「緑」

VBA風に表すと次のようになります。

  • Aさん.Name = ももこ
  • Aさん.Clothes.Color = 緑

Aさんの「名前」は1階層なのでドットが1つ

Aさんの「洋服」の更に「色」を取得するには2階層必要となるのでドットが2つ

天馬先生
天馬先生

このように、そのプロパティ(属性)が持つ情報が複数の階層にまたがることもあるよ。

たけし
たけし

なるほど!人間に例えるとイメージしやすいですね!

動作の状態とは

プロパティのもう1つの特徴「動作の状態」について解説します。

マクロ実行前が次の状態です。

before-operate

「属性」を確認すると

  • Range(“A1”).Font.Size = 11
  • Range(“A1”).Font.Name = 游ゴシック

この状態で次のマクロを実行します。

property-change

結果は次のようになります。

after-operate

「属性」を確認するとマクロで示した属性に変更されています

  • Range(“A1”).Font.Size = 18
  • Range(“A1”).Font.Name = MS Pゴシック

「属性を設定する」といった動作の状態を表わしています。

プロパティの取得と設定

天馬先生
天馬先生

プロパティの「属性」と「動作の状態」の違いが分かったところで、応用編にいきましょう。

プロパティの属性の【取得】と、動作の状態の【設定】を同時に使用することが出来ます。

次のExcelのA4セルの属性を変更してみましょう。

before-set

次のマクロを実行します。

property-change2

結果は次のようになります。

after-set

A4セルの文字サイズとフォントがA1と同じになりました。

VBAではイコール「=」を挟んで左側に動作の状態を「設定」右側で取得元の属性を「取得」することで設定と取得の機能を同時に使う事ができます。

property-change3

まとめ

今回は「オブジェクト」と「プロパティ」について解説しました。

オブジェクト(対象物)のプロパティ(属性)を変更する方法や、プロパティの属性の「取得」と「設定」を同時に行う方法について解説しました。

複雑なマクロも、この「オブジェクト」と「プロパティ」の処理の繰り返しです。

オブジェクトとプロパティの違いをおさえ、まずは簡単なマクロを作成してみましょう。

慣れてきたら徐々に複雑なマクロを作れるように頑張りましょう!

最後までお読みいただき、ありがとうございました!

~天然マクロ学校~

コメント

タイトルとURLをコピーしました