【Excel VBA】データ型

■VBA データ型

▼バイト型(Byte)

0〜255の正の整数値を格納する。

▼サンプルコード

Public Sub main()

    ' Byte型の変数宣言
    Dim data As Byte
    
    ' 0から255の正の整数をセット可能
    data = 123
    
    ' イミディエイトに出力
    Debug.Print data
    

End Sub

▼実行結果

 123

▼ブール型(Boolean)

TrueまたはFalseを格納する。

▼サンプルコード

Public Sub main()

    ' Boolean型の変数宣言
    Dim data As Boolean
    
    ' Trueを格納する。
    data = True
    
    ' イミディエイトに出力
    Debug.Print data

End Sub

▼実行結果

True

▼整数型(Integer)

-32,768〜32,767の整数値を格納する。

▼サンプルコード

Public Sub main()

    ' Integer型の変数宣言
    Dim data As Integer
    
    ' -32,768から32,767の整数値を格納する。
    data = 4567
    
    ' イミディエイトに出力
    Debug.Print data

End Sub

▼実行結果

4567

▼長整数値(Long)

Integer型では保存できない大きな桁の整数値を格納する。
-2,147,483,648から2,147,483,647

▼サンプルコード

Public Sub main()

    ' Long型の変数宣言
    Dim data As Long

    ' -2,147,483,648から2,147,483,647の整数値を格納する。
    data = 123456789
    
    ' イミディエイトに出力
    Debug.Print data

End Sub

▼実行結果

123456789

・通貨型(Currency)
Long型よりも大きな小数点を含む数値を格納する。
-922,337,203,685,477.5808から 922,337,203,685,477.5807

▼サンプルコード

Public Sub main()

    ' 通貨型の変数宣言
    Dim data As Currency
    
        
    data = 123456789.123
    
    ' イミディエイトに出力
    Debug.Print data

End Sub

▼単精度浮動小数点数型(Single)

小数点を含む数値を保存する。
正の値:約1.4×10-45 から1.8×1038
負の値:約-3.4×1038 から-1.4×10-45

▼サンプルコード

Public Sub main()

    ' Single型の変数宣言
    Dim data As Single
        
    data = 4 * 10 ^ -2
    
    ' イミディエイトに出力
    Debug.Print data

End Sub

▼実行結果

 0.04

▼倍精度浮動小数点数型(Double)

Single型よりも大きな小数点を含む数値を格納する。
正の値:約4.9×10-324 から1.8×10308
負の値:約-1.8×10308 から-1.4×10-324

Public Sub main()

    ' Double型の変数宣言
    Dim data As Double
    
    data = 4 * 10 ^ -99
    
    ' イミディエイトに出力
    Debug.Print data

End Sub

▼実行結果

 4E-99

▼日付型(Date)

日付と時刻を格納する。

▼サンプルコード

Public Sub main()

    ' Date型の変数宣言
    Dim data As Date
    
    ' #月/日/年#
    data = #1/1/2020#

    ' イミディエイトに出力
    Debug.Print data

End Sub

▼実行結果

2020/01/01

▼文字列型(String)

文字列を格納する。

▼サンプルコード

Public Sub main()

    ' String型の変数宣言
    Dim data As String
    
    data = "hoge"

    ' イミディエイトに出力
    Debug.Print data

End Sub

▼実行結果

hoge

▼オブジェクト型(Object)

オブジェクトへの参照を格納する。
オブジェクト型には固有オブジェクト型と総称オブジェクト型があり、
基本的に、使用用途がはっきりとしている場合は、固有オブジェクト型(Workbook, Worksheet, Rangeなど)を使用するが 総称オブジェクト型 (Object)でも代用可能。
イメージとしては、バリアント型( Variant)>総称オブジェクト型(Object)>固有オブジェクト型( Workbook, Worksheet, Rangeなど )の順で狭議化されていく。
※バリアント型は後述参照

▼サンプルコード

Sheet1のA1セルに記載されている文言「hoge」をイミディエイトに出力する。

Public Sub main()

    ' Object型の変数宣言
    Dim data1 As Object     ' 総称オブジェクト
    Dim data2 As Worksheet  ' 固有オブジェクト
    
    ' シートをオブジェクトにセット
    Set data1 = Worksheets("Sheet1")
    Set data2 = Worksheets("Sheet1")

    ' Sheet1のA1セルの文言をイミディエイトに出力
    Debug.Print "総称オブジェクト:", data1.Cells(1, 1).Value
    Debug.Print "固有オブジェクト:", data2.Cells(1, 1).Value

End Sub

▼実行結果

総称オブジェクト:          hoge
固有オブジェクト:          hoge

▼バリアント型(Variant)

あらゆる種類の値を格納することができるが、整数、文字、日付、オブジェクトなど、使用用途がはっきりしている場合は、それぞれの型を使用することをお勧めする。

▼サンプルコード

Public Sub main()

    ' Variant型の変数宣言
    Dim data1 As Variant
    Dim data2 As Variant
    Dim data3 As Variant
    Dim data4 As Variant
    
    
    ' シートをオブジェクトにセット
    Set data1 = Worksheets("Sheet1")
    
    data2 = 123
    data3 = "aaa"
    data4 = #1/1/2020#

    ' イミディエイトに出力
    Debug.Print data1.Cells(1, 1).Value
    Debug.Print data2
    Debug.Print data3
    Debug.Print data4


End Sub

▼実行結果

hoge
 123 
aaa
2020/01/01

コメント