このサイトの記事内では「アフィリエイト広告」などの広告を掲載している場合があります。
消費者庁が問題としている「誇大な宣伝や表現」とならないよう配慮しコンテンツを制作しておりますのでご安心ください。
問題のある表現が見つかりましたらお問い合わせよりご一報いただけますと幸いです。

【VBA】変数宣言を行う方法

2024年6月1日

今回はVBAで変数宣言を行う方法を紹介します。

変数宣言の基本的なやり方の他に変数宣言を強制させる方法と、上級者向けの内容も紹介します。

変数宣言の基本と応用的な内容を確認してみてください。

この記事では↓の内容が分かります。

  • 変数宣言を行う方法
  • 変数を複数同時に宣言する方法
  • 変数宣言を強制する方法
  • 変数宣言はどこですればよいか(上級者向け)
  • VBAでは初期値の設定はできない(上級者向け)

VBAが難しいと感じたら
ココナラにてVBAの作成依頼を受け付けています。
ご依頼・ご相談はこちらから

変数宣言を行う方法

Sub Sample1()
    'Dim 変数名 As 変数のデータ型
    Dim var As String
End Sub

VBAの変数宣言はこのように行います。

サンプルコードでは変数名をvar、変数のデータ型をStringにしています。

変数名は一部NGがありますが、自由に設定できます。 (VBAでは日本語もOK)

変数のデータ型は用途に応じて変更してください。主なデータ型には以下のようなものがあります。

宣言方法データ型値の範囲
String文字列型0~2GB
Booleanブール型真(True)又は偽(False)
Integer整数型-32,768~32,767
Long長整数型-2,147,483,648~2,147,483,647
Single単精度浮動小数点数型-3.402823E38~-1.401298E-45(負の数)
1.401298E-45~3.402823E38(正の数)
Double倍精度浮動小数点数型-1.7976931348623E308~-4.94065645841247E-324(負の数)
4.94065645841247E-324~1.79769313486232E308(正の数)
Date日付型西暦100年1月1日~西暦9999年12月31日
Currency通貨型-922,337,203,685,477.5808~922,337,203,685,477.5807
Variantバリアント型倍精度浮動小数点数型の範囲と同じ
可変長の文字列型の範囲と同じ
Objectオブジェクト型オブジェクトを参照するためのアドレス
Byteバイト型0~255
変数のデータ型

なお、変数宣言はDimステートメント以外にも次のステートメントで行うことができます。

  • Public
  • Private

それぞれスコープ(変数の参照範囲)が違うため詳しくは下記記事をご覧ください。

変数を複数同時に宣言する方法

Sub Sample2()
    'As 変数のデータ型はすべてに必要
    Dim var1 As String, var2 As String
End Sub

変数を複数同時に宣言するにはサンプルコードのように記載します。

注意して欲しいのは「As 変数のデータ型」の部分で、宣言する変数すべてに必要です。

Dim var1, var2 As String

例えばこのように書くとvar1はデータ型を宣言しておらず、デフォルトのVariant型となってしまいます。

変数宣言を強制する方法(Option Explicit)

変数宣言を強制する方法を紹介します。

変数宣言を強制すると、宣言していない変数名を使用したときにコンパイルエラーで知らせてくれます。

タイプミスなどでエラーが発生するのを防げるため、基本的に強制するのがおすすめです。

やり方ですが、画像のようにツール⇒オプション⇒変数宣言を強制するにチェック⇒OKで設定できます。

設定するとモジュールの先頭に「Option Explicit」という文字が追加されます。

この文字があると変数宣言が強制されます。

変数宣言はどこですればよいか(上級者向け)

VBAでは変数宣言の位置に制約はありません。

C言語では変数に使うメモリを予め確定するため、プログラムの先頭で変数を宣言する必要があります。

そのため、C言語に慣れた方はすべての変数を先頭で宣言する事が多いです。

しかし、最近のプログラミング言語にはこのような習慣がなく、むしろ使う直前で宣言するのが主流となっています。

特別な理由が無ければ、変数宣言は使う直前で行うのをおすすめします。

VBAでは初期値の設定はできない(上級者向け)

C#やVBなどでは変数宣言と同時に初期値の設定(代入)ができます。

しかしVBAではこのような仕様がないため、変数宣言の後に代入が必要となります。

《VBA上級者になりたい人へ》
VBA上級者を目指したい人にはパーフェクトExcel VBA一択です。
この本を読み切れば間違いなくVBA上級者になれます。

created by Rinker
技術評論社
¥3,608 (2024/07/13 02:32:47時点 Amazon調べ-詳細)
VBAが難しいと感じたら
ココナラにてVBAの作成依頼を受け付けています。
ご依頼・ご相談はこちらから

VBA

Posted by やろまい