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

実行結果

変数と文字列の違い

変数の命名規則

変数の名前は基本的に自由に命名できますが、いくつかの命名ルールがあります。変数名を命名する際は以下に注意しましょう。

  • 使用できる文字は、英字、ひらがな、全角カタカナ、漢字、数字、アンダースコア(_)
  • 先頭は文字でなければならない(数字または記号以外の文字)
  • 記号やスペースは使用できない
  • 変数名は半角255文字(全角127文字)以内にする
  • ExcelのVBA関数ステートメント、メソッドと同じ名前(予約語)を使用することは出来ない
  • 同一の適用範囲内で同じ名前の変数を宣言することはできない

変数名の付け方

変数名の付け方には様々な表記方法があります。以下は代表される表記方法になります。

表記方法内容事例
ハンガリアン記法変数名の先頭にデータ型を示す1~3文字程度の接頭辞(プリフィックス)をつけるstrName
キャメル記法複数の単語を組み合わせて変数名を設定し、各単語の先頭を大文字にするUserName
スネーク記法変数名をすべて大文字にするuser_name

まとめ

今回は、変数というものが何なのかについて解説しました。変数は非常に便利なものですので、命名規則や使い方をしっかり覚えましょう。次回は、変数の宣言について解説していきます。

次の記事: 変数の宣言 >>

Excel VBAでIEを思いのままに操作できるプログラミング術 Excel 2013/2010/2007/2003対応

近田 伸矢, 植木 悠二, 上田 寛

IEのデータ収集&自動操作のプログラミング本はこの1冊だけ!IEの起動やポップアップウィンドウ、表示を制御する基本的なコードはもちろん、テキストボックスやラジオボタン、表、ハイパーリンクなどのHTML部品を制御する方法など、自動操作に欠かせないノウハウを丁寧に解説。

  • このエントリーをはてなブックマークに追加
ExcelのVBAについてのQ&A掲示板

↑ExcelのVBA全般について分からない事があればこちらの掲示板よりご質問ください^^

VBAのInternetExplorer操作入門

↑ExcelのVBAをマスターできたら、エクセルVBAのIE(InternetExplorer)操作にも挑戦してみてください^^

VBAのIE制御入門RSS

RSSフィードを登録すると最新記事を受け取ることができます。

VBAIE操作のスカイプレッスン

エクセルVBAのステートメント

こちらでは、エクセルVBAの事例で利用したステートメントをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。

エクセルVBAのオブジェクト

こちらでは、エクセルVBAの事例で利用したオブジェクトをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。

エクセルVBAのプロパティ

こちらでは、エクセルVBAの事例で利用したオブジェクトのプロパティをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。

エクセルVBAのメソッド

こちらでは、エクセルVBAの事例で利用したオブジェクトのメソッドをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。

エクセルVBAのイベント

こちらでは、エクセルVBAの事例で利用したオブジェクトのイベントをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。