エクセルVBAの変数について解説しています。
<< オブジェクトブラウザとは :前の記事
前回は、オブジェクトブラウザについて解説しました。利用方法が分からないプロパティ・メソッドやどのようなメンバがあるのかを確認したい場合は非常に便利なツールですので、是非活用しましょう。ここからはVBAに限らずプログラミングの世界で共通するプログラムの基本について解説していきます。今回はその中でも重要な「変数」についてみていきましょう。
変数とは、文字列や数字など値を入れておく箱のようなものです。文字列や数値、オブジェクトのプロパティ値などを入れることができます。これまでの事例では、プロパティの値を直接Rangeオブジェクトに代入してきました。
これまでの事例のように短いプログラムであれば直接代入しても問題ありませんが、複雑なプログラムになればなるほど値のやり取りが頻繁に行われます。その際に変数という箱に格納すれば自由に出し入れすることができます。
エクセルVBAでは、値の受け渡しや計算結果の格納などすべて変数を利用して行いますので、しっかり理解して利用しましょう。
変数を利用するには決まった書式に則って記述します。決まった書式とは、「=(イコール)」を記述し数値・文字列・式などの設定値を代入します。
変数名 = 数値・文字列・式など
例えば、変数aに「VBA」の文字列を代入する場合は以下のように設定します。また、「VBA」は文字列ですので文字列を格納する場合は「"(ダブルクォーテーション)」で括るようにしましょう。
Sub Sample()
a = "VBA"
End Sub
※ドラッグ(スワイプ)すると全体を確認できます。
続いてこちらは数値と計算式の結果を変数aと変数bに格納しています。数値の場合はそのまま記述し「"(ダブルクォーテーション)」で括る必要はありません。変数aには「5」が格納されていますが、変数bには何が格納されているでしょうか?
正解は、変数bは変数aに算術演算子を利用して3を加えた数値ですので5+3=8で「8」が格納されます。このように計算式の結果も格納することができます。
Sub Sample()
a = 5
b = a + 3
End Sub
※ドラッグ(スワイプ)すると全体を確認できます。
変数と文字列の違いについて、文字列として扱う場合は「"(ダブルクォーテーション)」で括り、数値として扱う場合は括らずそのまま記述すると説明しました。
では、変数はどのように記述するかというと後者の括らずそのまま記述する形となります。この違いは非常に重要で間違った記述をしてしまうとエラーが発生することもあります。
例えば以下の事例の場合、変数a,b,cにはどのような値が格納されているでしょうか?変数aは文字列の「VBA」が格納されています。変数bは「"(ダブルクォーテーション)」で括られていない「a」ですので、変数aの値である文字列の「VBA」が代入されます。
そして変数cですが、こちらは「"(ダブルクォーテーション)」で括られた「a」ですので、文字列の「a」が格納されます。
このように「"(ダブルクォーテーション)」のありなしで変数が大きく変わりますので、記述する際は注意が必要です。
Sub sample()
a = "VBA"
b = a
c = "a"
MsgBox "変数aの値:" & a & vbCrLf & _
"変数bの値:" & b & vbCrLf & _
"変数cの値:" & c
End Sub
※ドラッグ(スワイプ)すると全体を確認できます。
変数の名前は基本的に自由に命名できますが、いくつかの命名ルールがあります。変数名を命名する際は以下に注意しましょう。
変数名の付け方には様々な表記方法があります。以下は代表される表記方法になります。
表記方法 | 内容 | 事例 |
---|---|---|
ハンガリアン記法 | 変数名の先頭にデータ型を示す1~3文字程度の接頭辞(プリフィックス)をつける | strName |
キャメル記法 | 複数の単語を組み合わせて変数名を設定し、各単語の先頭を大文字にする | UserName |
スネーク記法 | 変数名をすべて大文字にする | user_name |
今回は、変数というものが何なのかについて解説しました。変数は非常に便利なものですので、命名規則や使い方をしっかり覚えましょう。次回は、変数の宣言について解説していきます。
次の記事: 変数の宣言 >>
IEのデータ収集&自動操作のプログラミング本はこの1冊だけ!IEの起動やポップアップウィンドウ、表示を制御する基本的なコードはもちろん、テキストボックスやラジオボタン、表、ハイパーリンクなどのHTML部品を制御する方法など、自動操作に欠かせないノウハウを丁寧に解説。
ExcelのVBAについてのQ&A掲示板↑ExcelのVBA全般について分からない事があればこちらの掲示板よりご質問ください。
VBAのIE操作入門↑ExcelのVBAをマスターできたら、エクセルVBAのIE操作にも挑戦してみてください。
こちらでは、エクセルVBAの事例で利用したステートメントをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。
こちらでは、エクセルVBAの事例で利用したオブジェクトをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。
こちらでは、エクセルVBAの事例で利用したオブジェクトのプロパティをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。
こちらでは、エクセルVBAの事例で利用したオブジェクトのメソッドをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。
こちらでは、エクセルVBAの事例で利用したオブジェクトのイベントをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。