現役社内SEゆゆのExcelVBA覚書

現役社内SEがExcel VBAを中心に覚書として書いていくブログです。

【初心者】変数のデータ型

前回の記事と関連した内容です。 http://www.yumeigunshi.com/entry/2018/09/10/%E3%80%90%E5%88%9D%E5%BF%83%E8%80%85%E3%80%91%E5%9F%BA%E6%9C%AC%E4%B8%AD%E3%81%AE%E5%9F%BA%E6%9C%AC%EF%BC%81%E5%A4%89%E6%95%B0%E3%82%92%E5%88%A9%E7%94%A8%E3%81%99%E3%82%8Bwww.yumeigunshi.com

データ型

データ型とは、変数に格納できるデータの種類のことです。

前回記事では文字列を格納するStringを使いましたが、
他にもたくさんありますのでよく使うものを紹介していきます。

データ型 名称 範囲
String 文字列型 20億文字 "ABCDE"
"12345"
"あいうえお"
Integer 整数型 -32,768~
32,767
0
100
-10000
Long 長整数型 -2,147,483,648~
2,147,483,647
0
100000
-1000000
Single 単精度浮動
小数点数型
負の値:約-3.4×10(38乗)~-1.4×10(-45乗)
正の値:約1.4×10(-45乗)~1.8×10(38乗)
0
1.5
-1.5
Date 日付型 日付、時刻 2018/09/14
21:00
2018/09/14 21:00
Object オブジェクト型 - テキストボックスや
Excelシートなどなど・・・
Variant バリアント型 すべてのデータ "ABCDE"
1000
1.5
2018/09/14

解説

String[文字列型]

文字列はすべてStringに格納すればOKです。
ダブルクォーテーションで括られたものは文字列として扱われます。

Integer[整数型], Long[長整数型]

Integer,Longは整数を格納することができます。
何が違うかというと、格納できる整数の上限が違います。

Integerは最大で32,767までしか格納することができません。
なので金額とかだと全然足りませんね。
基本的にはLongのほうを使うことをおすすめします!

Single[単精度浮動小数点型]

小数点以下の数値を扱う場合に使用するデータ型です。

除算する際に小数が発生する場合はSingleを使わなければ正しい値が格納されません。

Sub test()
    Dim num1 As Long
    Dim num2 As Single
    
    num1 = 5 / 2
    MsgBox "5 / 2 = " & num1   '2

    num2 = 5 / 2
    MsgBox "5 / 2 = " & num2  '2.5
End Sub

f:id:yumeigunshi444:20180914233353p:plain
f:id:yumeigunshi444:20180914233403p:plain

このようにLongだと小数点以下の値が消えてしまいます。

Date[日付型]

日付や時刻のデータを格納する際に使用します。

Sub test()
    Dim d As Date
    
    d = Now    '現在日付、時刻をセット
    MsgBox d
End Sub

f:id:yumeigunshi444:20180914233715p:plain

Object[オブジェクト型]

テキストボックスやワークシートなど、オブジェクトを格納する際に使用します。
これは良く使うので覚えておいて損はないです!
用途が多いので、これはまた今後の記事で詳しく解説していきますね。

Variant[バリアント型]

全てのデータを格納することができます。
困ったらVariant型を宣言してセットしていけばとりあえず動きます。

ただし、めんどくさくてもちゃんと型を指定することをおすすめします。
ちゃんと宣言しておいたほうが、後から見ても分かりやすいです。
それにデータ型っていろんな関数とか使う上で大事なものなので、
しっかり理解しておいたほうがいいと思います。