【Excel VBA 】変数宣言と初期値代入の方法!複数一括設定も!

VBAで変数を宣言したいときはないでしょうか。

けど、そんな中で悩むことは、

・VBAで変数を宣言したいが方法がよくわからない
・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で変数宣言後に初期値を代入する方法
・VBAで複数の変数をまとめて宣言する方法

についてまとめました。

また、他にも便利な方法がありますので、よろしければご参照頂ければと思います。



この記事の関連キーワード

こちらの記事の関連キーワード一覧です。クリックするとキーワードに関連する記事一覧が閲覧できます。








コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です