2/03/2017

Excel。VBA。オブジェクト?プロパティ?メソッド?カタカナが苦手な人へ

Excel。VBA。オブジェクト?プロパティ?メソッド?カタカナが苦手な人へ

<VBA>


VBAを勉強するときに、

やりたいことのプログラム文から勉強したらいいのか?
それとも、それぞれの構文を勉強したらいいのか?

と良く聞かれますが、「英語」を勉強するのと似ているかもしれませんね?

文法を勉強したほうがいいのか?単語や文章を勉強したらいいのか?

これに似ていますね。

まずは、文法というか、構文を勉強しようとした場合、
多くの方が、最初に登場する【カタカナ】が壁になってしますようです。

特に、

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

が壁になって、VBAが苦手気味になってしまうようです。


VBAも、Excelのテクニックの一つなので、知っておいて損はないですよね。

そこで、今回は、オブジェクト・プロパティ・メソッドを簡単に紹介してみたいと思います。

オブジェクト

操作対象が「オブジェクト」と呼ばれています。

例えば、B2を範囲選択していますが、
このセルも操作対象なので、オブジェクトになります。

VBAでは、Range(“B2”)と表現しますね。

範囲選択ではRangeオブジェクトを使うというのが基本になりますね。

当然セルだけでなくて、シートを操作することもありますし、
ブックを操作することもありますよね。

さらにExcel自体を閉じたりしますので、Excel自体を操作することもありますよね。

それぞれ操作対象になるわけですから、それぞれがオブジェクトということになるわけです。

ワークシートは、Worksheetsオブジェクト
ブックは、Workbookオブジェクト
Excelは、Applicationオブジェクト

という名前があるのです。

補足なのですが、Worksheetsオブジェクトですが、
シートが複数ある場合には、Worksheetsコレクションという言い方もあります。

プロパティ

先ほどのオブジェクトの状態を表すのが「プロパティ」と呼ばれています。

プロパティを調べるには、次のような命令文を作ってみるとわかります。
Sub プロパティ()
    MsgBox Range("b2").Value
End Sub

このように、
Valueを使ってあげると、オブジェクトの状態=範囲の内容を調べることが出来ます。

この.Value。これがオブジェクトのプロパティ(状態)を表示してくれるので、
Valueは、プロパティに該当します。

なので、次のような命令文を作ってみると、2017/3/1に置き換わりますね。

Range(“b2”).Value = “2017/3/1”

オブジェクト.プロパティ=値

という形にすれば、オブジェクトを変化することが出来るわけです。


ついでなので、Excelでなれている人は、この=(イコール)がわかりにくいようですね。

b2が2017/3/1
というのではなくて、
2017/3/1がb2に入るということなのですね。


メソッド

オブジェクトの動作を表すものが「メソッド」と呼ばれています。

次のような命令文を作ってみましょう。
Sub メソッド()
    Range("b2").Select
    Range("b2").Copy Range("i2")
End Sub

まず、Range("b2").Select ですが、
「.Select」のSelectは選択するという動作をしますから、
メソッドということになりますので、Selectメソッドという呼び方になります。

オブジェクト.メソッド


という形ですね。

そして、動作の条件を指定するには、メソッドのあとに、引数を設定します。

Range("b2").Copy Range("i2")

これは、b2の値をi2にコピーするという意味ですが、コピーというのが動作なのでメソッド。

そして、i2に。という指定をしているので、Range("i2")が引数ということになります。

オブジェクト.メソッド 引数

という形になります。


このように、カタカナがありますが、
少しずつ、自分でわかりやすいように、
置き換えてあげて使っていくようにするといいかもしれませんね。