ExcelVBAを扱う上で「データ型」と「変数」は欠かせない項目ですが、初めての方にとっては少し複雑でつまづきやすいポイントでもあります。
本記事では、変数の宣言とデータ型の選択に関する基本的なポイントをわかりやすく解説します。初心者の方が効率的に学習を進められるよう、つまづきを避けるためのヒントも交えて解説していきます。
変数の宣言、変数のデータ型を選択して扱う事ができる様になる。
変数とデータ型
変数とデータ型は次の様に表す事ができます。
変 数:数字や文字など様々なデータを入れられる入れ物
データ型:変数がどんなデータを受け入れるかを明確に定義したもの
変数を使用する際にはデータ型を指定します。
データ型を指定することで変数の中身がどんなデータなのかが明確になり、プログラムが正確に動作してエラーを防ぐのに役立ちます。
図で表してみるとこんなイメージですね。
データ型の種類と選択
VBAで扱うデータにはそれぞれデータ型が定義されており、文字や数字など取り扱う内容によって型が異なります。
データ型 | データ型の名称 | 扱う事ができるデータ |
---|---|---|
Byte | バイト型 | 0~255までの整数 |
Boolean | ブール型 | 真(True)または偽(False) |
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 | 単精度浮動小数点型 | -3.402823E38 ~ -1.401298E-45:負の値 1.401298E-45 ~ 3.402823E38:正の値 |
Double | 倍精度浮動小数点型 | -1.79769313486232E308 ~ -4.94065645841247E-324:負の値 4.94065645841247E-324 ~ 1.79769313486232E308:正の値 |
Date | 日付型 | 西暦100年1月1日~西暦9999年12月31日までの日付と時刻 |
String | 文字列型 | 文字列 |
Object | オブジェクト型 | オブジェクトを参照する |
Variant | バリアント型 | 文字列や数値など全てのデータに対応 |
色んな種類があるけど、これ全部覚えるのは大変そう。。。
最初は全て覚えなくても、使用頻度の高い下記4つを覚えておけば問題ないですよ☝
- 長整数型:Long
- 倍精度浮動小数点型:Double
- 文字列型:String
- バリアント型:Variant
良かったです、4つ位なら私でも覚えられそう!
特に一番下のバリアント型は全てのデータが扱えるので、データ型の指定に悩んだ時はこちらを使用してみる事をお勧めします。
変数の宣言
マクロ内で変数を利用する時は、下記の様に宣言を行います。
実例を挙げると下記の様になります。
変数を数値(整数、小数)で宣言
Sub 変数_sample1()
'変数を整数や小数など数値で宣言
Dim x As Long '変数xを長整数型で宣言
Dim y As Double '変数yを倍精度浮動小数点型で宣言
x = 10
y = 3.14
End Sub
変数xは整数、変数yは小数をそれぞれ扱い、変数に値を入れる時は直接数値を記述します。
変数を文字列で宣言
Sub 変数_sample2()
'変数を文字列で宣言
Dim z As String '変数zを文字列型で宣言
z = "変数の勉強"
End Sub
変数zは文字列を扱い、変数に値を入れる時はダブルクォーテーション(“)で囲います。
変数をバリアント型で宣言
Sub 変数_sample3()
'変数をバリアント型で宣言
Dim ex1 As Variant '変数ex1をバリアント型で宣言
Dim ex2 As Variant '変数ex2をバリアント型で宣言
Dim ex3 As Variant '変数ex3をバリアント型で宣言
ex1 = 10
ex2 = 3.14
ex3 = "変数の勉強"
End Sub
バリアント型は全てのデータに対応している為、変数ex1は整数、変数ex2は小数、ex3は文字列と同じデータ型でもそれぞれ異なる種類のデータを扱う事ができます。
変数の宣言でデータ型を指定しない場合
変数はデータ型を指定できますが、必須ではなく省略して書く事ができます。
データ型を指定しない場合その変数はバリアント型として扱われ、どんなデータでも扱う事ができます。
Sub 変数_sample4()
'変数をバリアント型で宣言
Dim x '変数xをバリアント型で宣言
Dim y '変数yをバリアント型で宣言
Dim z '変数zをバリアント型で宣言
x = 10
y = 3.14
z = "変数の勉強"
End Sub
データ型を指定していないだけで、内容としては先程のバリアント型で変数を宣言した時と同様の物になり整数、小数、文字列など全てのデータを扱う事ができます。
バリアント型を選んでおけばデータ型の間違いによるエラーを出さずに宣言できるので、最初はこちらを活用して宣言すれば大丈夫です。
うーん、バリアント型で全部済むならデータ型って覚えなくても良さそうに感じてしまうのですが・・・
自分でコードを書く場合はそう感じてしまいますよね。
ただ自分で作成したもの以外の物(既存プログラムや他者が作成した物)は常にバリアント型で変数を宣言しているとは限らないので、どんなデータ型があるかは覚えておいた方が良いですよ。
確かにコードを理解するには最低限の知識は必要ですよね。認識を改めます!
変数名の決まり事
変数名は基本的には自由に決める事ができますが、その中でもいくつか守らなければならない決まりごとがあります。
- 変数名の先頭は文字でなけれればならない。
- 変数名には半角・全角の文字と数字が使える。
- 記号にはアンダーバーだけ使用可能
- 変数名の長さは半角で255文字まで。
変数名は普通に書けばまず問題にならないと思いますので、変数の宣言でエラーが起きた時は上記の内容を確認して修正してみて下さい。
終わりに
解説は以上で終了です。
今回は変数とデータ型について解説を行いました。
変数とデータ型はExcel VBAで基礎から応用まで幅広く使われる項目です。
どちらも最初はイメージが掴みにくい項目ですが、一度理解すれば
- 処理の中でどんなデータを扱っているか理解し易くなる
- 繰返し処理で処理回数やデータの件数をカウントする
- ファイルの保存先やファイル名などの文字列を保持する
- セルの行数・列数を指定して処理が書ける
など扱えるデータや処理中でできる事の幅が大きく広がっていくので、しっかりと身につけていきましょう。
また今後は上記に挙げた処理もどんどん記事にしていきますので、是非活用してみて下さい。
最後までお読みいただきありがとうございました。