データ型毎の記述方法

広告

データ型には色々あることが前のページで確認できましたが、あるデータ型の値をどのように記述するかを確認しておきます。

数値型

数値型には「バイト型」「整数型」「長整数型」「単精度浮動小数点型」「倍精度浮動小数点型」があります。この中で「バイト型」「整数型」「長整数型」は整数を、「単精度浮動小数点型」「倍精度浮動小数点型」は実数を表すのに使います。

整数型にも3タイプあるわけですが、格納できる値の大きさによって使うデータ型を選択します。一番基本となるのは「Integer型」となります。ただ、例えば正の数しか扱わず、値が0から255までの範囲に収まるような整数しか扱わない場合は「Byte型」を使います。またより大きな数値を扱う場合には「Long型」を使います。

「Long型」で指定しておけば大は小を兼ねるわけですから、データ型について悩まなくてもいいと思うかもしれませんが、データ型毎に必要なメモリ容量が異なり、大きな範囲の値を扱えるデータ型はより多くのメモリを必要とするため、適切なデータ型を選択するようにして下さい。

「Single型」と「Double型」の違いも扱える数値の大きさです。

数値を記述する場合は、そのまま記述します。例えば「10」とか「12.34」とかです。例えば変数に数値を格納する場合は次のように記述します。

Sub プロシージャ名()
    Dim x As Integer
    Dim y As Double

    x = 10
    y = 1234.567
End Sub

また「Currency型」も数値を扱います。極めて大きい数値を小数点も含めて正確に扱う場合には通貨型を使います。正確にと言うのは「Single型」や「Double型」は浮動小数点型のため、計算を繰り返すと「桁落ち」など誤差が生じる可能性があるからです。(意味が分からない方は気にしないで下さい)。大きな値を正確に計算が必要とされるような金額の計算のために通貨型があります。

通貨型の記述方法は他の数値型と同じです。

Sub プロシージャ名()
    Dim x As Currency

    x = 24200000
End Sub

文字列型

文字列型には文字を格納します。例えば「東京都」とか「Sony」などの文字を格納します。

文字を記述する場合には文字をダブルクォーテーション("")で囲って記述します。例えば変数に文字を格納する場合は次のように記述します。

Sub プロシージャ名()
    Dim x As String

    x = "東京都"
End Sub

また数値を文字列型に格納する事も出来ます。数値を記述する場合にはダブルクォーテーション("")で囲う必要はありません。

Sub プロシージャ名()
    Dim x As String

    x = 123
End Sub

この場合、文字列なのか数値なのか微妙な位置づけとなります。文字列ではありますが、他の数値との演算にも使えるからです。もし明確に文字列として扱いたい場合には文字の場合と同じようにダブルクォーテーション("")で囲って下さい。

Sub プロシージャ名()
    Dim x As String

    x = "123"
End Sub

日付型

日付型には日付と時刻の値を格納します。値の指定方法としては、日付の形をした文字列を指定するか、シャープ(#)で囲んだ形で日付を表す文字を指定するかのどちらかとなります。

Dim x As Date

x = "2006年8月23日"
x = #2006年8月23日#
x = #2006/8/23#
x = #8/23/2006#
x = #11:26:39 AM#

指定する時にの日付の形式は国によって違いますが、どれか1つ決まった形式で統一しておけばいいかと思います。またコードビューで日付を入力すると、自動的に別の表示形式に変換されて表示される場合があります。

ブール型

ブール型は「True」または「False」のどちらかの値だけを取るデータ型です。「True」であれば「正しい」であれば「False」であれば「間違い」という意味合いになります。

例えばある値が他の値よりも大きいかどうかの比較をした時に、結果として「True」か「False」のブール型の値を取ることになります。このように主に条件判定の際に利用されるデータ型と考えて下さい。詳細な使い方は別のページで確認します。

バリアント型

バリアント型はどんなタイプの型の値でも格納が出来ます。これは変数で型指定をせずに宣言した場合に設定される型と同じです。汎用的に利用するには便利ですが、必要なメモリも大きくあまりお勧めではありません。

サンプル

では簡単なサンプルで試してみましょう。

test2.bas

Sub テスト()
    Dim a As Integer
    Dim b As Double
    Dim c As String
    Dim d As String
    Dim e As Date
    
    a = 340
    b = 2450.887
    c = "こんにちは"
    d = "340"
    e = #8/23/2006#
    
    Range("A1").Value = a
    Range("A2").Value = b
    Range("A3").Value = c
    Range("A4").Value = d
    Range("A5").Value = e
End Sub

上記のマクロを実行すると次のようになります。

色々なデータ型での値の記述

ここで見なかったオブジェクト型については『オブジェクト』で見ていきます。

Excel VBA入門の他の記事を見てみる

( Written by Tatsuo Ikura )