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")が引数ということになります。
オブジェクト.メソッド 引数
という形になります。
このように、カタカナがありますが、
少しずつ、自分でわかりやすいように、
置き換えてあげて使っていくようにするといいかもしれませんね。