VBAの資格取得を応援する「パソコン教室ISA」ライターチームです。
VBAの学習を開始すると、「オブジェクト」、「プロパティ」、「取得」など耳慣れない単語がたくさんでてきます。VBAの超基本「セルの取得」を例に必須用語を理解しましょう。
VBAにおけるオブジェクトとは?
なじみのあるエクセルを例にしましょう。VBAにおけるオブジェクトとは操作したい対象のことを言います。エクセルを使うときにある「セル」に数値を入力したり、文字列を入力したりしますが、その「セル」がオブジェクトの1つになります。また、グラフ、画像、図などを挿入しますが、それらもオブジェクトといいます。
オブジェクトの階層構造
セルやグラフがオブジェクトの1つというお話でした。ここで押さえておかないといけないのは、オブジェクトには階層構造が存在するということです。セルやグラフはシートの中に存在しています。シートはブックの中に存在しています。また、ブックはエクセルというアプリケーションの中に存在しています。これらシート、ブック、アプリケーションもオブジェクトです。例えば、シートに名前を付けたり、ブックを上書き保存したり、エクセルの操作対象になりますよね。図で表すと以下のような構造になります。
階層構造を知らないと・・・
コードを書いたプログラミングを実行したときに思ってもいなかったシートに結果が出てしまった。実行するたびに違う結果になる。というようなことが起きます。そのようなエラーが出る場合には、オブジェクトにセル番地のみを指定しているということがおおいです。複数のシートやブックを扱う場合には、必ずこの階層構造を意識してコードを書きましょう。
\ VBA試験の詳しい情報を受け取る /
VBAにおける「プロパティ」とは?
プロパティとはセルなどのオブジェクトが持っている属性(情報)です。以下の図を見てみましょう。
Valueプロパティでセルの値を「取得」する
「取得」とはその情報にフォーカスするというイメージを持つと分かりやすいです。つまり、セルの値を取得するとは、セルの値にフォーカスするということです。上の図を例にC1の値を取得するコードは、以下のいずれかを記述します。
Range(“C1”).Value
Cells(1,3).Value
これでセルC1の値を取得することができました。見ての通り、値を表すプロパティはValueです。
セルを表すときには先頭にRangeプロパティをつけて、(“”)内に取得したいセル番地を記述するか、Cellsプロパティをつけて()内に行番号、列番号を記述します。列番号は、Aが1、Bが2、Cが3というように数値化します。
メッセージボックスを表示するMsgbox関数を先頭に付けて「2」が表示されるか試してみましょう。
Msgbox Range(“C1”).Value
Msgbox Cells(1,3).Value
取得したセルに値を代入する
Range(“C1”).Value
Cells(1,3).Value
で値は取得できますが、このままだとエラーが出て実行ができません。VBAは記述したコードを1行ずつ実行していきますが、基本的には以下いずれかの構文で記述する必要があります。(Msgbox関数は例外と今は思っておきましょう)
1)オブジェクト.プロパティ = 値
2)オブジェクト.メソッド
取得したセルの値プロパティに任意の数字を入れてみましょう。
Range(“D1”).Value = 10
Cells(1,4).Value = 10
文字列を代入する場合には、前後を””で囲みます。
Range(“E1”).Value = “ISA”
Cells(1,5).Value = “ISA”
結果が出たことを確認してみてください。
Valueプロパティは省略可能
セルオブジェクトの既定のプロパティはValueなので省略しても同様の結果になります。つまり、上のコードを例にすると
Range(“E1”) = “ISA”
Cells(1,5)= “ISA”
でも同じ意味、結果となります。省略することでコードがすっきりするメリットがあるので、
基本的には省略してしまって構いません。ただし、チームで開発するときなどに人によって省略ルールが異なってValueプロパティがあったりなかったりすると逆に読みにくくなってしまう場合もあるので、統一するようにしてくださいね。
Valueプロパティは書き始めてしまえば、意識せずとも使えるようになります。しかし、階層構造を意識するなど、VBAの基本は体系的に学習しないとどこかで行き詰ることも多いです。体系的に学習をしたい場合は、パソコン教室や通信講座で学ぶのがおすすめです。
中でも、40年近い教室運営の実績を有するISAパソコン教室は、豊富な種類のVBA取得コースを提供しています。講師をすべて社員として教育の質を担保するなどの取り組みにより、日本マイクロソフトが1年に1社を選ぶLeaning Awardを10年間で3度受賞しています。効率的かつ質の高い学びの場を求める方は、下記の資料をご確認ください。