整数、実数、通貨、文字列、日付型など、VBScriptで利用可能なデータ型について解説。演算時に行われる暗黙の型変換にも注意しよう。
前回は、文字列、数値、日付を扱うVBScriptの関数を取り上げ、それらを単独、あるいは組み合わせて使用することで、さまざまな処理が可能になることを示した。今回は前回に引き続きVBScriptの関数のうち、データ型を扱うものを取り上げるとともに、VBScriptにおけるデータ型の概念と利用法について説明する。
■連載目次
第1回 WSHを始めよう
第2回 VBScript基本(1)文字列の入出力
第3回 VBScript基本(2)計算と分岐処理
第4回 関数を使いこなす:文字列、数値、日付
第5回 データ型について理解を深めよう
第6回 VBScriptの配列を極める
第7回 Subプロシージャで処理を定義
第8回 Functionプロシージャで関数を定義
第9回 VBScriptのオブジェクトを使いこなす
第10回 WScriptオブジェクト(1)
第11回 WScriptオブジェクト(2)
第12回 WshShellオブジェクト(1)
第13回 WshShellオブジェクト(2)
第14回 WshShellオブジェクト(3)
第15回 WshNetworkオブジェクト
第16回 FileSystemObjectオブジェクト(1)
第17回 FileSystemObjectオブジェクト(2)
第18回 FileSystemObjectオブジェクト(3)
第19回 TextStream/Dictionaryオブジェクト
前回述べたように、データ型(単に「型」ともいう)とは変数の種類であり、VBScriptには文字列を扱う文字列型、日付や時刻を扱う日付型などがあると便宜上これまで説明してきた。しかし、実は、VBScriptで扱われる変数はすべて、どんな値でも格納できるバリアント(Variant)型であり、文字列を扱う文字列型や日付・時刻を扱う日付型といった特定のものは厳密にいうと存在しない。が、バリアント型の変数に値を格納すると、その値の種類に応じて(例えば文字列なら文字列型として)機能するので、実質的にはVBScriptにはさまざまな型が存在するものとして考えるべきである。VBScriptのヘルプには、例えば文字列を扱う型のことを「バリアント型 (内部処理形式が文字列型 (String) の Variant)」などと表現しているが、本稿ではこれを単に「文字列型」あるいは「String」と呼ぶことにする。
そもそもVBScriptの基になったVisual Basic言語(以下VB)では、Dimステートメント中で、
Dim x As String
のように、変数名と型名(As以下の部分)を同時に宣言する(As以下は省略可能だが、省略するとVBScriptと同じくバリアント型として扱われる)。この例ではString(文字列型)のxという名前の変数を宣言していることになる。VBなど一般的なプログラミング言語では変数名と型名を同時に宣言するが、VBScriptなどのスクリプト言語の多くでは、厳密な型宣言をさせず、データ型をあいまいに扱うことで、コードの記述量を減らせるように工夫しているのである。ただし、実際にVBScriptでコードを書くときは、特に複雑な長いコードになってくると、変数のデータ型を考慮しないとうまく実行できないなどのトラブルに付きまとわれることになる。そのためデータ型に関する知識は不可欠なものとなる。
これまでに登場した型も含めて、VBScriptで扱う型を一覧にしたのが次の表だ。
種類 | データ型名 (英語名) |
説明 | 接頭辞(プリフィックス) | |
---|---|---|---|---|
整数値を扱うデータ型 | 整数型 (Integer) |
-32,768〜32,767の範囲の整数値を持つデータ型 | int、i | |
長整数型 (Long) |
-2,147,483,648〜2,147,483,647の範囲の整数値を持つデータ型 | lng、l | ||
バイト型 (Byte) |
0〜255の範囲の整数値を持つデータ型 | byt | ||
実数値を扱うデータ型 | 単精度浮動小数点型 (Single) |
負の値:-3.402823E38(-3.402823×10の38乗)〜-1.401298E-45(-1.401298×10の-45乗)、 正の値:1.401298E-45〜3.402823E38の範囲の単精度浮動小数点数を持つデータ型 |
sng | |
倍精度浮動小数点型 (Double) |
負の値:-1.79769313486232E308〜-4.94065645841247E-324、 正の値:4.94065645841247E-324〜1.79769313486232E308の範囲の倍精度浮動小数点数を持つデータ型 |
dbl、d | ||
通貨型 (Currency) |
-922,337,203,685,477.5808〜922,337,203,685,477.5807の範囲の値を持つデータ型(小数点以下は4けた) | cur | ||
そのほかのデータ型 | 日付(時刻)型 (Date) |
西暦100年1月1日〜西暦9999年12月31日の日付を表す数字を持つデータ型 | dtm、dt | |
文字列型 (String) |
約2Gbytesまでの文字を格納できる可変長文字列を持つデータ型 | str、s | ||
ブール型 (Boolean) |
真(True)か偽(False)のどちらかの値を持つデータ型 | bln、b | ||
エラー型 (Error) |
エラー番号を持つデータ型 | err | ||
オブジェクト型 (Object) |
オブジェクトを参照するデータ型 | obj、o | ||
VBScriptのデータ型 |
ご覧のように、VBScriptのデータ型は整数値を扱うもの、実数値を扱うもの、そのほかのもの、に分けられる。後でこれらのデータ型を詳しく説明する。
なお接頭辞(プリフィックス)とは、変数名の先頭に慣用的に付ける文字である。例えば、文字列型にはstrInformation、sInformationのような名前を付けるのがよい。VBScriptでは型宣言ができないため、代わりに変数名を見ると型名が分かるように工夫するわけである。
Copyright© Digital Advantage Corp. All Rights Reserved.