Excel VBA

VBA超入門シリーズ:その6 ~変数の型~

はじめに

VBA超入門シリーズ:その5 ~変数の型~

 

もう少し変数について続きます。

前回で型には種類があることをまとめました。

 

さて、他のも使う機会は少ないのですが確認はしておきましょう!

数値型

数値を扱う型は「バイト型」「整数型」「長整数型」「通貨型」「単精度浮動小数点数型」「倍精度浮動小数点数型」があります。

 

「バイト型」「整数型」「長整数型」
 → 整数を扱う型
「通貨型」「単精度浮動小数点数型」「倍精度浮動小数点数型」
 → 小数のある数を扱う型
となります。

 

整数を扱う型

整数を扱う型だけでも3つあります。
前回の記述通り基本は Integer (整数型) と Long (長整数型) になります。
正の数かつ値が 0~255 の範囲の整数のみの場合は Byte (バイト型) を使用します。

 

全部 Long つかってしまえばいいのでは…?

 

とはいきません!

 

データ型毎に必要なメモリ容量が異なり、扱う範囲の大きい型はより多くのメモリが必要になります。
全部 Long にして重くて動かないマクロにならないように適切なデータ型を選択できるようにしましょう。

 

小数のある数を扱う型

Single (単精度浮動小数点数型) と Double (倍精度浮動小数点数型) が主に小数を扱う型です。

「12.3456」の数値を格納すると Long (整数型) との違いがわかります。

 

Long (長整数型) のとき

 

Single (単精度浮動小数点数型) のとき

 

小数点以下の「.3456」が格納されるかされないかの違いがよくわかりますね。

 

さらに小数点以下が大きい数値を正確に扱う場合は Currency (通貨型) を使用します。

Single や Double は浮動小数点型といわれるもので、計算を繰り返すと「桁落ち」があり誤差が生じます。

 

桁数が大きいと四捨五入されて計算がズレる!

 

このくらいの認識で大丈夫です。

大金の計算などの大きな値の正確な計算の場合に通貨型を使用しましょう。

 

String (文字列型)

文字を格納するときの型です。
ダブルクォーテーション ("") で囲って記述します。

 

Sub 文字格納()
 Dim name As String

 name = “なまえ”
End sub

 

数値を文字として格納する場合は囲う必要はありません。

 

Sub 文字格納()
 Dim number As String

 number = 123
End sub

Date (日付型)

日付と時刻を格納する型です。
日付の形の文字列を指定するか、シャープ (#) で囲んだ日付を表す文字を指定するかのどちらかです。

 

Dim x As Date

 x = “2020年4月21日”
 x = #2020年4月23日#
 x = #2020/4/23#
 x = #1:25 PM#

Boolean (ブール型)

「True」又は「False」の値だけを取る型です。
If 文の条件の結果や And や Or などの論理演算によく使います。

 

Variant (バリアント型)

何でも格納可能な万能型です!
型を何も指定せずに宣言したときに設定される型はこれです。
しかし必要メモリは多く、さらにはなんでも入れられてしまうのでおススメではないです!!

 

変数の型はきちんと指定しましょう!

 

オブジェクト型とユーザー定義の型は複雑なので、気になる方は書籍やネットで調べて学習しましょう。
型の説明はざっとこんな感じです。まだまだ説明したいのですが「超入門」なのでこのくらいにしておきます。

 

次回は演算子についてです。足し算引き算のことですね!
ここまでちょっと難しかったので息抜き回です。

 

「VBA超入門シリーズ:その7 ~演算子~」に続く