| 基礎解説 チェック式 WSH入門 第5回 3.ブール・データ型Microsoft MVPVisual Developer - Scripting 牟田口 大介 2006/09/22 |
![]() |
|
|
|
そのほかのデータ型として、日付(時刻)型(Date)、文字列型(String)、ブール型(Boolean)、エラー型(Error)、オブジェクト型(Object)がある。このうち、エラー型については、VBScriptで用いることはほとんどないと思われるので割愛する。また、オブジェクト型については、後の回で詳しく説明するのでここでは省略する。日付型と文字列型については、連載第4回「4.日付処理関数を使いこなす」でそれらを扱う関数とともに使用例を紹介した。残る型としてはブール型があるが、これは今回初登場なのでこれから解説する。
ブール型とは、True(真)かFalse(偽)かのどちらかを格納する最も単純なデータ型である。二者択一の情報を格納するときに用いられる。例えば、後述するIs〜といった関数の戻り値はブール型である。
実は、ブール型の値は比較演算子を使うときにも扱っている。第3回「3.WSHで条件分岐処理をする」で登場したコードを一部修正して再掲する。
Option Explicit |
このようなコードは、ブール値を扱っていることを明確にすると、次のように書き換えられる。なお、コードの後半に変数の内容と型を表示するコードを追加している。
Option Explicit |
If〜Then〜ElseステートメントではIfの後に条件を書くが、それがブール型のTrueならThenの後が実行されるということである。Falseの場合はElse以下が実行される。intXとintYの値を入れ替えて試してもらいたい。なお、If blnCondition = True Thenと記述しても同じことである。Trueであることを強調したい場合はこちらの記述をするのがよい。
ブール型は「条件Aまたは条件B」や「条件Aかつ条件B」や「条件Aでない」などを表すのに便利である。これらを「論理演算」といい、論理演算を行う演算子を論理演算子という。例えば、「18以上、30以下」という数値の範囲を表すには、「条件Aかつ条件B」(条件Aと条件Bの論理積)を意味するAnd演算子を用いる。次の例ではIf〜Then〜Elseステートメント中でAnd演算子を用いている。
Option Explicit |
これは、intX >= 18(18以上)というブール型の条件Aと、intX <= 30(30以下)というブール型の条件Bの論理積を求めている。結果はやはりブール型で返され、範囲内だとTrueを返す。
ほかによく用いる演算子としては、「条件Aまたは条件B」を表す論理和(Or演算子)、「条件Aでない」を表す論理否定(Not演算子)がある。これらの論理演算子は数値演算子と同様、( )を用いたりして組み合わせて利用することが可能である。
論理演算は下図のような「ベン図」を用いると分かりやすい。論理積は2つの条件の円が交わる部分を表している。
![]() |
| 18以上30以下の範囲を示すベン図 |
| 斜線部分が2つの条件の論理積を示す。 |
ここで1つ論理演算にまつわる例題を出そう。「うるう年」は1年が366日ある年のことだが、ある年がうるう年であるためには3つの条件がある。
(1)うるう年は西暦が4で割り切れる年とする。
(2)(1)のうち、100で割り切れる年は平年とする。
(3)(2)のうち、400で割り切れる年はうるう年とする。
これを一文で書くと、うるう年とは、「『西暦が4で割り切れ、かつ100で割り切れない年』または『西暦が400で割り切れる年』」となる。この条件を論理演算子の組み合わせで表現し、任意の年がうるう年かどうかを判定するスクリプトを書いてみよう。割り切れるかどうかはMod演算子(割り算の余りを求める)を用いて0になるかどうかで判定する。
Option Explicit |
演算子を複雑に組み合わせるので少し難しかったかもしれないが、お分かりいただけただろうか? まず、「西暦が4で割り切れ」なのでintYear Mod 4 = 0というブール値を書く。「かつ100で割り切れない」ので、先ほどの値とintYear Mod 100 <> 0をAnd演算子で論理積を取る。「または400で割り切れる年」なので、先ほどまでで計算したブール値と、intYear Mod 400 = 0の論理和をOr演算子で取る。ベン図で描くと分かりやすいだろう。
![]() |
| うるう年の条件を示すベン図 |
| 赤い斜線で示した部分がうるう年を示す。 |
| 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」 特設サイトオープン! 最新情報・移行ノウハウを公開しています |









