ExcelマクロVBA再入門 | 第12回.エクセルの言葉を理解する(オブジェクト、プロパティ、メソッド) | マクロが覚えられないという初心者向けに理屈抜きのやさしい解説



最終更新日:2016-03-29

第12回.エクセルの言葉を理解する(オブジェクト、プロパティ、メソッド)


ExcelマクロVBAを書いて実行すると、

何やら難しい日本語らしきメッセージが表示されることがあります、

エクセルが何かを伝えようとしている訳ですが、

何を言っているのかを理解してあげなければエクセルがかわいそうです。

しかし、エクセルが表示するエラーメッセージの言葉の意味位は知っていて損はありません。


例えば以下のVBAコード、



これを実(F5))すると、



上記のようなエラー表示が出ます。

エラー番号"438"、これは覚える必要がありませんが、
メッセージの、
オブジェクトは、このプロパティまたはメソッドをサポートしていません。

オブジェクト ???
プロパティ ???
メソッド ???


ほとんど日本語とは言えませんね。
オブジェクト、プロパティ、メソッド
これらの意味くらいは覚えておかないと、エクセルが何を言っているのか理解出来ません。
上記のコードでは、
valeuこれが間違いで、正しくはvalueとなります。
オブジェクトは、このプロパティまたはメソッドをサポートしていません。
とは、
Range("A1")は、このvaleuをサポートしていません。
という意味になります。
では、順にオブジェクト、プロパティ、メソッドについて説明します。

■オブジェクトとは

オブジェクトは、objectであり、物・物体のことです。
VBAで何か操作をしようとする対象となるものがオブシェクトです。
ブックやシート、そしてセルなどを指します。
セル(RangeやCells)はRangeオブジェクトと言います。


■プロパティとは

プロパティは、propertyであり、財産・資産のことです。
オブジェクトの持つ財産・資産のことであり、オブジェクトの性質を表すデータです。
セルの持つ値や書式は全て、セルのプロパティです。
プロパティは、値の取得と、値の設定、この二つの機能があります。


■メソッドとは

メソッドは、methodであり、方法、方式です。
オブジェクトに対する動作・操作を指定します。
セルを選択する、セルを削除する等です。
メソッドには、値を取得する機能もあります。


■プロパティとメソッドの違い

○○○.□□□
このような記述なら、
○○○はオブジェクト、□□□はプロパティまたはメソッドです。
前述のエラーは、
Range("A1").Valeu = "おはよう"
これに対し、
オブジェクトは、このプロパティまたはメソッドをサポートしていません。
つまり、
Range("A1")はオブジェクト、Valeuはプロパティまたはメソッドだとエクセルは認識しているという事です。
エクセルとしても、プロパティかメソッドの区別はついていないという事です。
プロパティかメソッドの区別は特に気にする必要はありません。
プロパティとメソッドの違いはあまりないのですが、
○○○.□□□ = 値
この場合の□□□はプロパティです。
メソッドには、値の設定機能はありませんので、値を入れる事は出来ません。
なので、=で値を入れていればそれはプロパティという事です。


■オブジェクトの階層(親子構造)

○○○.△△△.□□□
このような記述なら、
○○○.△△△はオブジェクト、□□□はプロパティまたはメソッドです。
簡単に説明すると、
親オブジェクト.子オブジェクト.プロパティまたはメソッド
という事になります。
例えるなら、ボールペンを思い浮かべてください。
ボールペンというオブジェクトには、キャップと言う子供のオブジェクトが含まれます。
ボールペンの色が何色かと考えたとき、
ボールペンのどこの色・・・と言う事を指定が必要です。
ボールペンのキャップの色
これをVBA風に書けば、
ボールペン.キャップ.色
ボールペン.キャップがオブジェクトで、色がプロパティになります。


■プロパティの省略

Range("A1") = "おはよう"
Cells(1, 1) = "おはよう"

この二つは同じ意味になりますが、
どれがオブジェクト?プロパティ?
Range("A1") やCells(1, 1) はオブジェクトです。
すると、
オブジェクト = 値
という事になってしまいます。
オブジェクトに値は入れられません。
というか、オブジェクトの何に値を入れるのか・・・
上のボールペンの例なら、
ボールペン = 赤
これでは、ボールペンのどの部分を赤にするのか・・・
ボールペン.キャップ.色 = 赤
ここまで書いて初めて他人(つまりはエクセル)に理解してもらえます。
では、先の、
Range("A1") = "おはよう"
Cells(1, 1) = "おはよう"
これはどういう事でしょうか。
これは、
Range("A1").Value = "おはよう"
Cells(1, 1).Value = "おはよう"

これらの省略形だったのです。
Valueは価値や値打ちの意味の英単語ですが、ここでは値と訳しましょう。
RangeやCellsでは、プロパティを書かないと、
.Value
が省略
したことになるのです、そういう決まりになっています。


■エクセルの言葉であるVBAを日本語に翻訳する

○○○.△△△.□□□
これは、
○○○△△△□□□
または、
○○○△△△□□□する
と訳します。
前者がプロパティの訳し方、後者がメソッドの訳し方になります。
.(ピリオド)は「」か「」と訳します。
少なくとも、途中の.(ピリオド)は「」と訳します。
最後の.(ピリオド)が、
プロパティなら「」、メソッドなら「」と訳してください。

プロパティの値の設定なら、
○○○.△△△.□□□ = ☆☆☆
→ ○○○△△△□□□☆☆☆を入れる
メソッドなら
○○○.△△△.□□□
→ ○○○△△△□□□する


■最終行取得のコードを訳してみる

Cells(Rows.Count, 1).End(xup).Row
()内を部分的にみると、
Rows.Count
 これは、
 Rowsオブジェクト.Countプロパティ
 Rowsオブジェクトとは、シートの行を表すオブジェクトで、その件数(Count)です。
 つまり、シートの行数を取得しています。
End(xup)
 これは、そのセルから指定方向にCtrl+方向キーで移動した終端セルのRangeオブジェクトになります。
上記を理解して、訳してみると、
セル(シートの行数, 1).上方向の終端セル.行
となります。
セル(シートの行数, 1).上方向の終端セル
ここまでがオブジェクトで、シートの最終行のセルから上方向の終端セルのオブジェクト
そして、そのセルの行(セルの行位置)を表すプロパティがRowという事です。


オブジェクト、プロパティ、メソッド
これらの言葉を知らなくても、マクロVBAは書けます。
これらの言葉の詳細、深い理解は、通常は必要ありません。

エラーメッセージやネットの記事を読んだとき、
こういう事を言っているのか…くらいで理解できれば十分です。
マクロVBAを書くことを続けていれば、少しずつ覚えていくものです。




同じテーマ「ExcelマクロVBA再入門」の記事

第11回.分からない事はエクセルに聞く(マクロの記録)
第13回.セルのコピペ方法を知る(CopyとPaste、さらに)
第14回.セルの書式を設定する(NumberFormatLocal,Font,Barders,Interior)
第15回.手作業で出来なければマクロは書けない
第16回.エクセルの機能を上手に使う
第17回.セルにブック・シートを指定する(Workbooks,Worksheets,With,Set)
第18回.シートをコピー・挿入・削除する(Worksheets,Copy,Add,Delete)

新着記事 ・・・新着記事一覧を見る

スプレッドシートが非常に遅い、高速化するには|Google Apps Script入門(1月17日)
画像のトリミング(PictureFormat,Crop)|ExcelマクロVBAサンプル集(12月27日)
シート保護|Google Apps Script入門(12月24日)
表示の固定|Google Apps Script入門(12月24日)
グラフ|Google Apps Script入門(12月21日)
入力規則|Google Apps Script入門(12月13日)
並べ替え|Google Apps Script入門(12月12日)
メモの挿入・削除と改行文字|Google Apps Script入門(12月6日)
リンクの挿入・編集・削除|Google Apps Script入門(12月6日)
セルに数式を入れる|Google Apps Script入門(12月1日)

アクセスランキング ・・・ ランキング一覧を見る

1.RangeとCellsの使い方|ExcelマクロVBA入門
2.最終行の取得(End,Rows.Count)|ExcelマクロVBA入門
3.徹底解説(VLOOKUP,MATCH,INDEX,OFFSET)|エクセル関数超技
4.Range以外の指定方法(Cells,Rows,Columns)|ExcelマクロVBA入門
5.セルの参照範囲を可変にする(OFFSET,COUNTA,MATCH)|エクセル関数超技
6.セルのコピー&値の貼り付け(PasteSpecial)|ExcelマクロVBA入門
7.ひらがな⇔カタカナの変換|エクセル基本操作
8.CSVの読み込み方法|ExcelマクロVBAサンプル集
9.変数とデータ型(Dim)|ExcelマクロVBA入門
10.VBAのFindメソッドの使い方には注意が必要です|ExcelマクロVBA技術解説



  • >
  • >
  • >
  • エクセルの言葉を理解する(オブジェクト、プロパティ、メソッド)

  • このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。


    記述には細心の注意をしたつもりですが、
    間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
    なお、掲載のVBAコードは自己責任で使ってください。万一データ破損等の損害が発生しても責任は負いません。

    ↑ PAGE TOP