【ExcelVBA入門】変数って何だ?2/2【第5回】

次回に引き続き変数がテーマだよ!今回は特にオブジェクト変数を学んでいこうね!
よみぞう
- そもそもオブジェクトって?
- オブジェクト変数とは?
- まとめ
動画も併せて見てね!
そもそもオブジェクトって?
まずオブジェクトって何?
えな
ここが、少し難しいかも。一言で言うと「処理の対象」のことなんだ
よみぞう
プログラムはPCに対する命令文。命令文は端的に「AをBしろ」って表現できるよね。この場合のAに相当するのが、オブジェクト(=処理の対象)なんだ
- Excelブック
- シート
- セル
- etc…
がその例になる。次のオブジェクト変数の解説で具体的にイメージしていこう。
オブジェクト変数とは?
オブジェクト変数は二つのプログラム(プロシージャ)
- 「変数3の1」
- 「変数3の2」
を使って説明します。
まず一つ目!「変数3の1」を見て下さい。
1行ずつ見ていきましょう
ここは、Stringが使われているので、この意味は
Stという名前の文字専用の箱を使います!
えな
という変数の宣言です。
次の行はStに代入しています。何を代入しているのか?
ここは復習ですが、
「Thisworkbook.sheets(1).Range(“A1”)」は、
「このエクセルファイルのシート1のA1セル」
と読みます。ではA1セルに何が書いてあるのか実際に見てみましょう。
「変数1」と書いていますね?なので、
この行は「変数St」に「変数1」という文字列を代入する」と読みます。
次の行はStの中身をメッセージボックスに表示。つまり「変数1」が表示されます。実際F5で実行してみると…。
はい、そうなりました。まだ、オブジェクト変数は出てきません。まずここまでの動きを押さえて下さい。
今度は、新しいプログラム「変数3の2」を見ていこう!
変数の宣言の1行目はさっきと一緒ですね。新しいところは2行目!
2行目のAs の後はObjectとなっています。なので、
HSという「オブジェクト変数」を使います!
えな
という意味になります。
次見ていきましょう。
先にコメント見てみて下さい。「変数HSにオブジェクトを代入」と書いていますね。この行はHSにオブジェクトを代入しているんだということが分かります。じゃ代入しているオブジェクトって何か?=の右側見て下さい。
Thisworkbook.sheets(1)と書いてますね?これが今回のオブジェクト。つまり、処理の対象のことです。ここ大事!じゃ次の行。
Stに何かを代入していますね?HS.Range(“A1”)と書いています。この行を、さっきのプロシージャ「変数3の1」の対応する行と比べてみます。
見比べてみて下さい。間違い探しです。分かりましたか?
……
えな
(あ、分からないみたいだな)
よみぞう
Thisworkbook.sheets(1)がHSに置き換わっています。
さっき言ったとおり、今オブジェクト変数HSに入っているのがThisworkbook.sheets(1)なので、そのまま置換えができるんです。つまり実行してみると、
このように、変数3の1と同じ結果になります。なんとなく分かったかな?
で、さらっと飛ばしたところ説明します。オブジェクト変数の代入のところです。
これですね。じゃ続けて、前回やった整数Longの代入と文字列Stringの代入を並べて見ます。
何が違うか分かりますか?
…
えな
(あ、分かったみたいだな)
よみぞう
オブジェクト変数への代入だけ、Setが付いてますよね。このSetを必ず付けるということこれが、整数や文字列の代入と違うところです。ここは単純に覚えましょう。
まとめ
今回理解できなかった人も、今後使っている内に必ず理解できるようになるので、焦らないで!まずは
- オブジェクト変数とは処理の対象を代入できる変数
- 代入の時にはSetをあたまに付けるんだ
ということだけ理解すればひとまずOKだよ。とにかくお疲れ様!
よみぞう