| 基礎解説 チェック式 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ジャパン)
- WindowsTIPS (2010/3/12)
− 不要なアドオンを無効化してIE8の起動を高速化する
− IE8のソース表示エディタを変更する
− RRASのNATでポートマッピングを定義する - PowerShell 2.0で始めるWindowsシステム管理 (2010/3/11)
コマンド・プロンプトやWSHスクリプトはもう古い!? これからのWindowsシステム管理はPowerShellでスマートに片付けよう - Hyper-Vライブ・マイグレーションの運用ノウハウ (2010/3/10)
ライブ・マイグレーションの運用フェイズで役立つノウハウを解説。実用的なPowerShellスクリプトなども紹介する - 第211話 あとで読む (2010/3/9)
おっ、これいいねぇ。ああこっちも。いやあインターネットは情報の宝庫だね。いまは忙しいから、「あとで読む」ってことでメモメモ
|
|
スキルアップ/キャリアアップ(JOB@IT)
スポンサーからのお知らせ
- - PR -
| 仮想環境の構築とデータ保護の特効薬?! 実績と信頼性の高いパッケージで安心運用 New! |
| 仮想環境のバックアップもこれまでどおり 「まるごと取ってまるごと戻す」簡単運用 |
| おばかアプリ選手権、第4弾開催中!! ムダにカッコよくてくだらない作品求ム! |
| 社内ファイルサーバを“クラウド”に統合 VPN直結「クラウド型ストレージ」を紹介 |
| その数、なんと400台以上! グループ内 サーバの「統合管理」によるメリットは? |
| 美人!? まあまあ? 気になる いやし系!! PV急増で「美人時計」がとった手段とは? |
| .NET編集長が実践する「技術情報検索術」 サンプル・コードを簡単に探す“技”は? |
| 進化を続ける富士通ストレージETERNUS DX 製品開発者の自信を裏付けるものとは何か |
| 運用管理の課題を“2つの観点”から分析 ユーザー満足度の高い「仮想環境」とは? |
- - PR -
お勧め求人情報

**先週の人気講座ランキング**
〜Java編〜
| ◆ | おばかアプリ選手権、第4弾開催中!! ムダにカッコよくてくだらない作品求ム! |
| ◆ | 社内ファイルサーバを“クラウド”に統合 VPN直結「クラウド型ストレージ」を紹介 |
| ◆ | Twitterのアカウントはなぜ突破された? メールによる新手の攻撃手法とその対策 |

| ◆ | もう仮想化のお試しフェイズは終わりだ! Hyper-V 2.0が基幹システムも仮想化 |
| ◆ | 美人!? まあまあ? 気になる いやし系!! PV急増で「美人時計」がとった手段とは? |
| ◆ | クライアント企業から求められる人材 ⇒IT技術と経営戦略を併せ持つ「戦略家」 |

| ◆ | .NET編集長が実践する「技術情報検索術」 サンプル・コードを簡単に探す“技”は? |
| ◆ | 業務効率と情報セキュリティ対策を両立! 手間なく確実に機密情報を守る方法とは? |
| ◆ | 直属上司が海外にいるのエンジニアに見る 【実例】場所に捉われないワークスタイル |

| ◆ | 「仮想化工房」のマイスターが選んだのは VMware、Hyper-V、そしてVirtageだった! |
| ◆ | 進化を続ける富士通ストレージETERNUS DX 製品開発者の自信を裏付けるものとは何か |
| ◆ | 運用管理の課題を“2つの観点”から分析 ユーザー満足度の高い「仮想環境」とは? |

| ◆ | 【CTC事例】約30の基幹システムを統合! 膨大なバッジジョブを制御した方法は? |
| ◆ | 仮想化すればコストは削減できるか? 仮想化に必要な「3つの視点」を解説する |
| ◆ | その数、なんと400台以上! グループ内 サーバの「統合管理」によるメリットは? |












