VBAで変数を宣言したいときはないでしょうか。
けど、そんな中で悩むことは、
・VBAで変数宣言後に初期値を代入したいが方法がよくわからない
・VBAで複数の変数をまとめて宣言したいが方法がよくわからない
ですよね。
今回はそんなお悩みを解決する
・VBAで変数宣言後に初期値を代入する方法
・VBAで複数の変数をまとめて宣言する方法
についてまとめます!
もくじ
VBAで変数を宣言する方法
変数を宣言する
変数を宣言するとき使用するのは Dim ステートメントとなります。
宣言の方法については以下の通りです。
Dim 変数名 As データ形式
変数宣言時に設定できるデータ形式
データ形式については以下の通りとなります。
型の値 | 型の形式 | 内容 |
---|---|---|
Variant | 様々型 | すべてのデータ形式に対応し、値の内容によって動的にデータ型が変更されます。 |
Boolean | ブール型 | ブール形式のデータ(TrueまたはFalse)が扱えます。 |
Byte | バイト型 | 0~255までの整数が扱えます。 |
Integer | 整数型 | -32,768~32,767の整数が扱えます。 |
Long | 長整数型 | -2,147,483,648~2,147,483,647の整数が扱えます。 |
Currency | 通貨型 | -922,337,203,685,477.5808 ~ 922,337,203,685,477.5807の通貨値が扱えます。 |
Single | 単精度浮動小数点数型 | 単精度浮動小数点数型が扱えます。 |
Double | 倍精度浮動小数点数型 | 倍精度浮動小数点数型が扱えます。 |
Date | 日付型 | 日付と時間のデータが扱えます。 |
String | 文字列型 | 文字列が扱えます。 |
Object | オブジェクト型 | 様々なオブジェクトが扱えます。設定する時はSetステートメントを使います。 |
変数宣言の例
例えば変数に整数型を指定する時は、以下のようにIntegerやLongのデータ型を指定します。
Sub テスト1()
Dim intTemp As Integer
intTemp = 1
intTemp = intTemp + 1
Debug.Print intTemp
End Sub
結果は2と表示されます。
2
文字列型の場合は以下のようにStringのデータ型を指定します。
Sub テスト2()
Dim strTemp As String
strTemp = "あいうえお"
strTemp = strTemp & "かきくけこ"
Debug.Print strTemp
End Sub
結果は「あいうえおかきくけこ」となります。
あいうえおかきくけこ
次にデータ型をおまかせにするVariant型について説明をします。
呼び方はバリアント型といい、変数の値によってデータ型を自動的に変換する形式になります。
As以降を省略した「Dim 変数名」とした場合にこのVariant型が指定される形になります。
変数にVariant型を指定した場合、どのようにデータ型が変化するかサンプルでみてみましょう。
Sub テスト3()
Dim variTemp As Variant
'この段階ではInteger型になります。
variTemp = 1
'文字列結合をした段階でString型に変換されます。
variTemp = variTemp & "1"
Debug.Print variTemp
End Sub
この段階ではInteger型になります。
variTemp = 1
文字列結合をした段階でString型に変換されます。
variTemp = variTemp & "1"
結果は「11」となります。
11
VBAで変数宣言後に初期値を代入する方法
VBAで変数宣言後に初期値を代入する方法について説明をします。
変数を宣言と同時に初期値を代入したいと考える時がありますが、VBAではDim宣言と同時に値を代入することはできませんので、コードは分ける形となります。
初期値を代入する
初期値の代入方法はデータ形式にあった値を=で変数につないで指定をします。
変数名 = 値
上記であげていますが、以下サンプルです。
variTemp = 1
variTemp = variTemp & "1"
Const定数では宣言と同時に値が設定できる
これまでDimステートメントを使用した宣言を使用してきましたが、Constステートメントで定数を扱うと宣言と同時に値が設定できるので、こちらについて説明をします。
Const ステートメントとは定数を宣言するためのステートメントです。
定数とは一度代入すると変更できない値のことで、例えば計算式で変えられると困る税率の設定などで利用されます。
式は以下の通りです。
Const 定数名 [As データ型] = "固定にしたい値"
定数を宣言し値を入れたあとに変更をしてみます。
Sub テスト4()
Const intTemp As Integer = 0.08
'定数は変更できないので、この段階でエラーとなります。
intTemp = 0.1
Debug.Print intTemp
End Sub
はい、エラー「コンパイルエラー 定数には値を代入できません。」となりましたね。
定数は変更できないので、この段階でエラーとなります。
intTemp = 0.1
VBAで複数の変数をまとめて宣言する方法
VBAで複数の変数をまとめて宣言する方法について説明をします。
方法としてはDimステートメントで宣言したあとカンマ「,」で2個目以降をつなぐ形となります。
サンプルコードは以下の通りです。
Sub テスト5()
Dim variTemp As Variant, strTemp As String, intTemp As Integer
End Sub
デバッグすると、Dimステートメントは1個ですが、それぞれの変数に指定したデータ型が定義されていることがわかりますね。
なおAS以降のデータ側を省略すると、Variant型が入る形となります。
VBAの実装手順
実装手順は以下の通りです。
Excel側にVBAを実装していきます。
①Excelを新規に開き、「開発」タブをクリックし、「VisualBasic」をクリックします。
もしくはショートカットキー「Alt」+「F11」でもOKです。
②標準モジュールを追加します。
左ペインのVBAProjectを右クリックし、「挿入」、「標準モジュール」を選択します。
③右ペインのウインドウに上記のVBAを入力します。
こちらで完了です。
VBAを実行する
では早速VBAの実行をしてみましょう。
①「開発」タブの「VBA」をクリックし実行したいマクロを選択し、「実行」をクリックします。
②処理がされたことが確認できれば完了です。
さいごに
いかがでしょうか。
今回は、
・VBAで変数宣言後に初期値を代入する方法
・VBAで複数の変数をまとめて宣言する方法
についてまとめました。
また、他にも便利な方法がありますので、よろしければご参照頂ければと思います。
コメントを残す