【エクセルVBA】変数の書き方と使用方法

投稿者: | 2021年3月13日
excelアイコン

エクセルバージョン

マイクロソフト365

 

本日はVBAをこなしていくには絶対に避けては通れない変数について詳しく解説していきたいと思います。

それではいってみましょう!

 

変数とは

文字や数字などを入れられます。

number=1

str=”文字”

みたいに左の文字に右の数字や文字などを入れられます。

 

なぜ変数を使用するのか

可読性があるのと使用したほうが便利だから使用します。

 

連続した数字を100個セルに書き出す場合

A列に下記のようにVBAでCellsを1個1個、書いたら時間がかかってしまいますよね(TдT) ウゥ…

【例1】

 

【例2】

A列変数iを使用してセルに書きこんだ例

変数を使用すればFor文で繰り返し変数を使用できるので数秒で処理が完了します。

Forが分からない場合は → VBA繰り返し処理

この構文で変数繰り返し処理を行うことで、1秒くらいで1~100までの数字が、A1~A100セルに書き込めます。

ですので時短ができるのと、コードが短く可読性があるので変数を使用するわけです(*^^)v

 

変数を記述する準備

変数の強制

まずは下記の手順でどおりに作業を進めていきましょう!

ツール  ➔  オプショ ン ➔  変数の宣言を強制するにチェックを入れます。

VBAオプション

VBAオプション

これで変数の記述忘れを防止できます。

 

標準モジュールを開く

まずは前回学んだ標準モジュールを作成してから、下記のようなプロシージャを作成します。

忘れた方はこちらでご確認できます。 ➔ 標準モジュール

先程変数の強制にチェックしたことで1番最初の行にOption Explicitという1文が挿入されます。

これで準備は整ったので早速、変数を記述していきましょう(★‿★)

 

Dim

Dimステートメント

最初のDimですが変数を記述する時は、頭にDimと記述するルールになっていますので、ここは時間をかけずにそういうもんなんだで覚えちゃいましょう!

 

変数名

変数の名前

次に、このnumber変数になります。

 

そしてこの変数の名前は自分で決めます。

この変数名を決める時には命名規則というのがあるのですが、自分だけで使用する場合は最初はエラーが出なければなんでも構いません。

とりあえず記号などを使用せず、ひらがなや漢字も使用できますが、英文字のみで記述する癖をつけましょう。自分だけで使用するならaとか1文字でもとりあえずOKです。

 

変数名はなるべく英字で記述。これだけ覚えておきましょう。

 

変数の型

Asですが、Asは型の前に際に記述します。

 

そしてInteger。これが型になります。

(型にはいろいろな種類があります)

 

ここではIntegerは(-32,768 〜 32,767)までの整数を、変数numberの中に入れられるとだけ覚えておいてください。

次の検証で意味がわかります(*^^)v

 

Integerの型が正しいか検証してみる

それではIntegerは(-32,768 〜 32,767)の整数までなのかを実際にコードを記述して確認してみます。

 

32767を変数に入れて検証

変数にnumberに32767という整数をいれて実行してみます。

【結果】

32767がメッセージボックスに表示されます。

integer型検証1

 

32768を変数に入れて検証

変数numberに例1より1大きい32768という整数をいれて実行してみます。

【結果】

エラーがでてオーバーフローしました。が表示されます。

integer型検証2

ということでIntegerは32767よりおおきな数字は変数には格納できません。

 

変数に文字を入れてみる

文字を変数に入れてみます。その際に文字を使用する型指定はStringを指定します。

 

【サンプル】

文字を変数に入れる時は必ず下記の例の”Hello” ← をダブルクォーテーションで文字を囲います。

 

変数の型一覧

ずらずら~っと一覧があって混乱すると思いますが、先程も述べたように先頭の3つくらいしか最初のうちは使用しないと思うので、ここは先程の型が一致しません」のエラーが出た際など必要な時だけ閲覧すればいいと思います(^^)

データ型記憶領域サイズ範囲
String (可変長)10 バイト + 文字列の長さ0 〜 約 20 億
Integer2 バイト-32,768 〜 32,767
Long (Long 整数)4 バイト-2,147, 483,648 〜 2,147, 483,647
Variant (数値)16 バイト最大で Double の範囲までの任意の数値
Boolean2 バイトTrue または False
Object4 バイト任意の Object 参照
Byte1 バイト0 ~ 255
Single (単精度浮動小数点数)4 バイト-3.402823E38 から -1.401298E-45 (負の値)
1.401298E-45 から 3.402823E38 (正の値)
Double (倍精度浮動小数点数)8 バイト負の値)-1.79769313486231E308 から -4.94065645841247E-324
(正の値)4.94065645841247E-324 から 1.79769313486232E308
Date8 バイト100 年 1 月 1 日 から 9999 年 12 月 31 日
Collection不明不明
Currency (スケーリングされた整数)8 バイト-922,337,203,685,477.5808 ~ 922,337,203,685,477.5807
Decimal14 バイト(小数点なし)+/-79,228,162,514,264,337,593,543,950,335
(小数点以下 28 桁)+/-7.9228162514264337593543950335
(0 ではない最小の値)+/-0.0000000000000000000000000001
Dictionary不明不明
LongLong (LongLong 整数)8 バイト-9,223,372,036,854,775,808 から 9,223,372,036,854,775,807
64 ビット プラットフォームでのみ有効。
LongPtr (32 ビット システムでは Long 整数、64 ビット システムでは LongLong 整数)32 ビット システムでは 4 バイト
64 ビット システムでは 8 バイト
-2,147,483,648 から 2,147,483,647 (32 ビット システム)
-9,223,372,036,854,775,808 から 9,223,372,036,854,775,807 (64 ビット システム)
文字列型 (String) (固定長)文字列の長さ1 〜 約 65,400

 

まとめ

ずらずらと長い文章を書きましたが、VBAを記述しているうちに嫌でも変数なんかは覚えちゃいますので心配ありません。

慣れれば特に難しいことではなく、毎回使用する便利なものになります(★‿★)

変数は慣れです。

定数は下記で解説しています。

【エクセルVBA】定数(Const)の記述と使用方法

以上です。