【VBA基礎講座:第3回】VBAの構文:オブジェクト式
この記事では、もう少しVBAの細かい内容について紹介します。
ややこしい用語の解説が続くけど、今後の学習を効率よく進めるために頑張ってついてきてね。
VBAの3つの構成要素
VBAは、次の3つの式で構成されています。
- オブジェクト式:実際に Excelを操作する書き方
- ステートメント:対象に対して様子や状態を調べたり、マクロ全体の中で
何らかの動きをします。 - 関数:ワークシートの関数と同様に、何らかのデータを受け取って、
決められた計算結果を返す仕組み
この記事では、1つ目のオブジェクト式について紹介します。
今は理解できなくてもいいので、「目的別に3種類あるんだな〜」と理解してもらえれば大丈夫だよ。
「オブジェクト式」について
オブジェクト式は、 Excelを操作する文です。単語と単語の間を.(ピリオド)で繋ぎます。
オブジェクト式は次の2種類の書き方があり、 実行したい操作によって書き方が異なります。(()(かっこ)内は省略可能です。)
- 対象(.状態)=値
- 対象.命令 (オプション:=値)
それぞれ順番に解説しますので、しっかり理解した上で構造を覚えてください。
今後は「状態」や「命令」がたくさん出てくるから、この構造を覚えておけばスムーズに理解できるよ。
「対象(.状態)=値」 について
対象の様子や状態に関する書き方です。対象に値を挿入したり、セルの値を他のセルにコピーしたりすることができます。
例えば、次のように記述します。
1Cells(1, "A").Value = 1
これは、A1セルに1という値を代入するという意味です。
最初の構造と比較すると、次のような構成になっています。
- Cells(1, “A”):対象 (A1セル=対象の)
- Value:状態 (値に)
- 1:値 (1という値を代入)
「=(イコール)」は代入演算子といって、右側にあるもの(1)を、左側にあるもの(A1セル)に代入するという意味の記号だよ。
対象.命令 (オプション:=値) について
これは、対象に何らかの動作やアクションを起こさせる書き方です。
例えば、次のように使います。
1Cells(1, "A").ClearContents
これは、A1セルの値を削除しろ、と命令しています。
構造は次のとおりです。
- Cells(1, “A”):対象 (A1セル=対象の)
- .ClearContents:命令 (値を削除しろ)
動作に対する補足事項を、命令のオプションまたや引数(ひきすう)というよ。これは省略することができて、上の例でも省略した形になっているよ。
これら2つの書き方は今後ずっと使っていくものなので覚えるようにしてください。
「オブジェクト」「プロパティ」「メソッド」について
前の章では、オブジェクト式の構造について紹介しました。
対象、状態、命令と解説しましたが、実はこれらには名前がついています。
それぞれ次のとおりで、忘れてもいいので今この瞬間は必ず覚えてください。
- 対象:オブジェクト
- 状態:プロパティ
- 命令:メソッド
オブジェクト式の構文に当てはめると、次のとおりです。
- オブジェクト(.プロパティ)=値
- オブジェクト.メソッド (オプション:=値)
VBAでコーディングするときにはネットで命令文等を検索するんだけど、上記の用語を知っている前提で解説されるので、覚えておかないと理解できないことが多いんだ。
演習問題
これまで学んだことを踏まえて、以下の演習問題に取り組みましょう。
注:答えは問題右の+をクリックしてください。
- 演習1:VBAの構成要素を3つ答えよ。
-
答え:
- オブジェクト式:実際に Excelを操作する書き方
- ステートメント:対象に対して様子や状態を調べたり、マクロ全体の中で何らかの動きをします。
- 関数:ワークシートの関数と同様に、何らかのデータを受け取って、決められた計算結果を返す仕組み
- 演習2:オブジェクト式の書き方を2つ答えよ。
-
答え:
- 対象(.状態)=値
- 対象.命令 (オプション:=値)
- 演習3:演習2のオブジェクト式の2つの書き方を、次の用語を用いて答えよ。
(オブジェクト、プロパティ、メソッド) -
答え:
- オブジェクト(.プロパティ)=値
- オブジェクト.メソッド (オプション:=値)
最後に
いかがだったでしょうか。プログラミング学習は難しい用語を覚えるところから始まり大変ですが、今後の学習を円滑に進めるために必要な工程です。分からないところがあれば何度も読み返して、しっかりマスターして次の章に進んでみてください。
それでは、バイよ。