| 基礎解説 チェック式 WSH入門 第5回 2.形名の調査と数値データ型Microsoft MVPVisual Developer - Scripting 牟田口 大介 2006/09/22 |
![]() |
|
|
|
型名を調べる〜TypeName関数
VBScriptのデータ型について述べる前に、先にデータ型の調べ方について説明しておこう。
すでに述べたように、VBScriptでは変数宣言と同時に変数の型を宣言することができず、変数に値を代入した時点でVBScriptが内部的に型を決定する。そのため、実際にどの型として扱われているのかの調査が必要になることがある。また、関数などの戻り値がどういう型を持っているかを調べたいこともある。VBScriptでは、変数の型を調べるのにVarType関数あるいはTypeName関数を用いる。このうち、TypeName関数は実際の型名が文字列として得られるので、よく用いられる。
TypeName関数の使用方法は、調べたい変数を引数に与えるだけである。例えば次のような使い方をする。
Option Explicit |
このスクリプトを実行すると、次のようなメッセージ・ボックスが表示される。
![]() |
| TypeName関数の実行例 |
| 変数intTestの型名をTypeName関数を使って表示している。 |
この実行例では、intTestという変数に、1という値を代入したことにより、内部的には整数型(Integer)として扱われていることが分かる。
ではこれからデータ型の詳細を順番に見ていこう。
整数値を扱うデータ型
整数値を扱うデータ型には整数型(Integer)、長整数型(Long)、バイト型がある。そのうちバイト型は、通常、配列(次回解説予定)の1つであるバイト配列として用いるのだが、VBScript単独ではバイト配列が扱えないので、ここでは取り上げない。
整数型、長整数型の違いは扱う数値範囲(けた数)の違いであることが表からお分かりいただけると思う。
先ほどTypeName関数の例で述べたように、1などの-32,768〜32,767の範囲にある数値リテラル(数値文字列表現)を変数に代入すると整数型(Integer)として扱われる。
整数型は32,767より大きい整数を扱えないので、それより大きい整数(-2,147,483,648〜2,147,483,647)を代入するとLong型として扱われる。次の例を見てもらいたい。
Option Explicit |
このサンプルを実行すると次のようになる。
![]() |
![]() |
| IntegerとLongの違い | |
| Integerの最大値(32767)はInteger型、それより1大きい値(32768)はLong型となる。 | |
32,767という整数型の最大値はIntegerとして扱われているが、それより1大きい数(32,768)はLongとして扱われる。
実数値を扱うデータ型
実数とは整数だけでなく小数も含めた、いわゆる普通の数のことである。
VBScriptで実数値を扱うデータとしては単精度浮動小数点型(Single)、倍精度浮動小数点型(Double)、通貨型(Currency)がある。
このうちSingleとDoubleは「浮動小数点」という聞き慣れない言葉が含まれていてとっつきにくいかもしれない。浮動小数点数とは、数値を、各けたの値の並びである「仮数部」と、小数点の位置を表す「指数部」に分けて表現する方法であり、大きな値や、逆に小さな値を表現するのに適したデータ型である。小数点以下の数値を持つデータ表現方法として一般的である。SingleとDoubleの違いは、表現できる数値の範囲がSingleよりDoubleの方が広い(Eの後の数値が大きい)のと、有効数字のけた数がSingleよりDoubleの方が多い(Eの前の数が多い)という点である。
Option Explicit |
このスクリプトを実行すると次のように表示される。
![]() |
![]() |
| Doubleとして扱われる数 | |
| 小数点を含む数値あるいはLong型で収まりきれない大きな数はDouble型として扱われる。 | |
このように、小数点を含んだり、Longの範囲を超える極めて大きな数を格納するとDoubleとして扱われる。後者の例は、有効数字が15けたで、指数部分(10の何乗かを表す部分)が「+19(10の19乗)」となっている。VBScriptの数値演算関数のうち、小数点を含む数を戻り値として返す関数の多くはDoubleを返すうえ、先ほどの例のように小数点を含む数値をリテラルとして用いるとDoubleとして扱われるので、VBScriptにおいてSingleを使うことはまれであろう。
ここでは詳説しないが、これら浮動小数点数は数値演算子や関数を用いた演算において、誤差が発生する可能性がある。そのため誤差が発生すると困るが小数点以下の数値を扱いたいという場合には通貨型(Currency)を用いる。通貨型は本来、その名のとおり通貨の計算を厳密に行うためのデータ型なのだが、実際は固定小数点数のデータ型として使える。扱える小数部と整数部の範囲は狭いが、誤差のない小数演算が可能である。ただし、通貨型は数値リテラルの宣言だけでは使用できないので、CCur関数を用い、数値リテラルに対し明示的な型変換を施して利用する必要がある。CCur関数など変換関数については後ほど述べる。
| INDEX | ||
| [基礎解説]チェック式 WSH入門 | ||
| 第5回 データ型について理解を深めよう | ||
| 1.VBScriptのデータ型 | ||
| 2.形名の調査と数値データ型 | ||
| 3.ブール・データ型 | ||
| 4.暗黙の型変換 | ||
| 5.明示的な型変換と特殊な値 | ||
| 更新履歴 | |
|
| 基礎解説 |
ホワイトペーパー(TechTargetジャパン)
- 第207話 究極の人事システム (2010/2/9)
部長、わが人事部が開発した究極の人事評価システムがついに完成しました! これで不要な社員が一発で分かります! - WindowsTIPS (2010/2/5)
− netshコマンドでTCP/IPのパラメータを設定する
− Virtual PC 2007の共有NATで利用可能なアドレス範囲
− スタンバイ復帰でパスワード入力を要求されないように - 仮想環境でActive Directoryを利用する (2010/2/4)
仮想環境にADをインストールすれば、自由にActive Directoryドメイン・ネットワークを構築して実験できる - 第206話 バナー広告案 (2010/2/2)
いまどきWebマーケティングが不可欠なのは分かるが、強烈な競合に並べてバナーなんか出して、勝ち目はあるのか?
|
|
スキルアップ/キャリアアップ(JOB@IT)
スポンサーからのお知らせ
- - PR -
- - PR -
お勧め求人情報

**先週の人気講座ランキング**
〜CCNA編〜
| ◆ | 企業の仮想化に足りない“発想”とは? 仮想化運用管理のキモは意外なところに! New! |
| ◆ | 操作もマニュアルも分かりやすい! ユーザー視点で開発されたPC管理ツール New! |
| ◆ | 仮想化すればコストは削減できるか? 仮想化に必要な「3つの視点」を解説する |

| ◆ | セキュリティを知り尽くす上野氏が登壇! @ITメールソリューションLive! in Tokyo |
| ◆ | 運用管理の課題を“2つの観点”から分析 ユーザー満足度の高い「仮想環境」とは? |
| ◆ | 世界に通用するストレージの作り方とは? 製品に込めた思いを富士通の開発者に聞く |

| ◆ | OSSで手間も時間も、障害も減った―― 「マピオンの事例」オープンソース活用法 |
| ◆ | 「ノートPCの持ち出し禁止」で大丈夫? 情報漏えいを防ぐ管理手法とインフラは? |
| ◆ | 1日の処理を1秒に――MySQLの達人が語る 「コスト削減」できるチューニング |

| ◆ | ドキュメント作成を自動化して、SEの作業 効率を大幅アップ! Visio 2007の魅力 |
| ◆ | 急速に広がるHyper-Vでのサーバ仮想化 そのベストプラクティスをデルが解説 |
| ◆ | @IT主催セミナーで語られた、「担当者に 求められるセキュリティ対策」をレポート |

| ◆ | @IT「Windows 7」 特設サイトオープン! 最新情報・移行ノウハウを公開しています |












