| 基礎解説 チェック式 WSH入門 第5回 4.暗黙の型変換Microsoft MVPVisual Developer - Scripting 牟田口 大介 2006/09/22 |
![]() |
|
|
|
ある型から別の型に値を変換することを型変換という。型変換には関数を用いた明示的な型変換と、VBScriptが値を判断して行われる暗黙の型変換が存在する。
数値同士の型変換は、数値演算するときに暗黙的に行われることが多い。「整数値を扱うデータ型」の項で説明したサンプルは、本来ならInteger同士の足し算の結果はIntegerとして返されるのだが、Integerの範囲を超えたため、自動的にLongに変換され変数に格納されている。
また、例えばIntegerとDoubleという異なった型を組み合わせて数値演算すると、結果はDoubleになる。これは、計算する型が異なる場合は、よりカバーする範囲の広い型(Integerに比べてDoubleは広い範囲をカバーする)に型変換されてから計算されるためである。以下のサンプルを実行してもらいたい。
Dim intNumber, dblNumber, dblResult |
結果は次のようになる。
![]() |
| 数値演算中に発生する暗黙の型変換 |
| 異なった数値型同士の演算は、よりカバーする範囲の広い型に合わせて行われる。 |
数値から文字列の暗黙の型変換についてはこれまでにも何度か登場してきた。例えば、
Option Explicit |
のように、Longの値とStringの値を文字列連結演算子&で結合すると、Longの値がStringに型変換され、結果として1つのStringの値になる。
また逆に、文字列から数値への型変換も暗黙的に行われる場合がある。
Option Explicit |
この例では、InputBox関数で数値を入力すると、その値を20倍するという数値演算を行っているが、その際、StringからLongやIntegerなどに型変換が行われ、適切に処理される(もちろん、InputBoxに適切な数値を入力する必要がある)。
文字列から数値への型変換には1つ注意点がある。それは、数値が含まれたString値の足し算をする場合である。実は、VBScriptの+演算子には2つの意味がある。1つは数値の足し算を意味する算術演算子で、もう1つは文字列の連結を意味する文字列連結演算子なのである(&と同等)。次の例を見てもらいたい。
Option Explicit |
このサンプルを実行すると次のようになる。
![]() |
![]() |
![]() |
| 暗黙の型変換がうまくいかない例 |
| 文字列が数値に型変換されず、文字列同士の連結になっている。 |
この例だと、100+50なのだから、結果は150となるべきなのに、100と50が文字列のまま扱われ、“10050”という文字列が返されてしまっている。これは、+算子は文字列同士を扱う場合は文字列を連結するという特性を持っているためである(ただし、片方が数値で、片方が数値の含まれた文字列の場合だと、数値同士の足し算になる)。これは文字列型がうまく数値型に変換されない例である。
| INDEX | ||
| [基礎解説]チェック式 WSH入門 | ||
| 第5回 データ型について理解を深めよう | ||
| 1.VBScriptのデータ型 | ||
| 2.形名の調査と数値データ型 | ||
| 3.ブール・データ型 | ||
| 4.暗黙の型変換 | ||
| 5.明示的な型変換と特殊な値 | ||
| 基礎解説 |
TechTargetジャパン
- WebサーバのSSL証明書が「正しい」か確認する (2012/2/10)
SSLに必要なサーバ証明書の取得/インストールのミスはWebサイトの信頼を失墜させかねない。証明書ベンダ提供のツールで手軽かつ確実にチェックしよう - クライアントでも利用可能になるHyper-V 3.0とは? (2012/2/9)
Windows 8では、従来のWindows Virtual PCに代わって新しくHyper-V 3.0がクライアント向けにも導入される。その概要を解説 - 第303話 ペアプロ2 (2012/2/7)
あっ、またまたいつぞやの幽霊が! …っと思ったら、何だ倉井さんかぁ…。はぁー、驚いた… - Excelで郵便番号変換ウィザードを活用する (2012/2/3)
Excelで管理している顧客名簿などで、不足している郵便番号や住所を入力するのは意外と面倒。郵便番号変換ウィザードを使えば、これらの入力が簡単になる
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -





