
VBA超入門シリーズ:その6 ~変数の型~
はじめに
続きです。
変数に指定する型には種類があることが確認できました。
前回の私は{全部は覚えていられないのでよく出てくるものだけにします。}
とか言っていましたが他のも確認はしておきましょう。
数値型
「バイト型」「整数型」「長整数型」「単精度浮動小数点数型」「倍精度浮動小数点数型」が数値を表す型です。
「バイト型」「整数型」「長整数型」 → 整数
「単精度浮動小数点数型」「倍精度浮動小数点数型」 → 実数
となります。
さて
整数を扱う型だけでも3つあります。
前回の記述通り基本は整数型(Integer)と大は小を兼ねる長整数型(Long)になります。
正の数且つ値が0~255の範囲内の整数のみの場合はバイト型(Byte)を使用します。
(全部Longつかってしまえばいいのでは。。。?)
とはいきません。
データ型毎に必要なメモリ容量が異なり、扱う範囲の大きい型はより多くのメモリが必要になります。なので適切なデータ型を選択できるようにしましょう。
(最近のスペックのPCだと気にする必要はほぼないですが知っておきましょう。)
単精度浮動小数点数型(Single)と倍精度浮動小数点数型(Double)も扱える数値の大きさの違いです。
簡単に言ってしまえば、小数点がついた数値を扱う時に使われる型です。
「12.3456」の数値を格納してみれば違いがわかります。
長整数型(Long)のとき
単精度浮動小数点数型(Single)のとき
小数点以下の「.3456」が格納されるかされないかの違いがよくわかりますね。
また、小数点のある大きい数値を正確に扱う場合は通貨型(Currency)を使用します。
SingleやDoubleは浮動小数点型といわれるもので、計算を繰り返すと「桁落ち」があり誤差が生じます。
桁数が大きいと四捨五入をして近似値として数値を格納してしまうため差が出る、、くらいの認識で大丈夫です。
大金の計算などの大きな値の正確な計算のために通貨型があります。
文字列型
文字を格納するときの型です。
ダブルクォーテーション(“”)で囲って記述します。
Sub 文字格納()
Dim name As String
name = “なまえ”
End sub
数値を文字として格納する場合は囲う必要はありません。
Sub 文字格納()
Dim number As String
number = 123
End sub
日付型
日付と時刻を格納する型です。
日付の形の文字列を指定するか、シャープ(#)で囲んだ日付を表す文字を指定するかのどちらかです。
Dim x As Date
x = “2020年4月21日”
x = #2020年4月23日#
x = #2020/4/23#
x = #1:25 PM#
ブール型
「True」又は「False」の値だけを取る型です。
If 文の条件の結果や And や Or などの論理演算によく使います。
バリアント型
何でも格納可能な万能型です。
型を何も指定せずに宣言したときに設定される型はこれです。
しかし必要メモリは多く、さらにはなんでも入れられてしまうのでおススメではない!!
オブジェクト型、ユーザー定義の型は難しいのでまたの機会に、、、
型の説明はざっとこんなこんな感じです。まだまだ説明不足なのですが「超入門」なのでこれくらいでヨシ。