【2/17】今年は「濃厚」技術トーク!@ITメールセミナー スラッシュドット    はてなブックマーク  Yahoo!ブックマークに登録  印刷
 
 

基礎解説

チェック式 WSH入門
―― 演習方式で身につけるWSH超入門 ――

第6回 VBScriptの配列を極める

1.VBScriptのデータ型

Microsoft MVP
Visual Developer - Scripting
牟田口 大介
2006/11/03

Index(全19回)
WSHを始めよう
VBScriptの基本を押さえよう(その1) 文字列の入出力
VBScriptの基本を押さえよう(その2) 計算と分岐処理
関数を使いこなす(その1) 文字列、数値、日付を扱う関数
データ型について理解を深めよう
VBScriptの配列を極める
Subプロシージャでユーザー独自の処理を定義する
Functionプロシージャでユーザー独自の関数を定義する
VBScriptのオブジェクトを使いこなす
WScriptオブジェクトを利用する(1)
WScriptオブジェクトを利用する(2)
WshShellオブジェクトを利用する(1)
WshShellオブジェクトを利用する(2)
WshShellオブジェクトを利用する(3)
WshNetworkオブジェクトを利用する
FileSystemObjectオブジェクトを利用する(1)
FileSystemObjectオブジェクトを利用する(2)
FileSystemObjectオブジェクトを利用する(3)
TextStreamオブジェクトとDictionaryオブジェクトを使う[最終回]

 前回は、VBScriptを学ぶうえで避けて通れない、データ型の概念とそれぞれのデータ型の使用方法について詳説した。今回は、やはりVBScriptの重要要素である「配列」について、その概念と使用方法について述べるとともに、配列と併用することが多いステートメントや関数についても取り上げる。

配列とは

 配列とは、同じ型のデータを連続して並べたものである(*)。変数(配列変数と区別して単なる変数は「スカラ変数」という)が1個の値を格納するものだったのに対し、配列は、複数の値を格納することができる。言葉では分かりにくいかもしれないが、次に示す図を見ていただければ分かるだろう。


* 前回説明したとおり、VBScriptで扱うデータ型はバリアント型ただ1つなので、VBScriptにおける配列はすべてバリアント型の配列、バリアント配列である。

配列の概念図
変数がただ1つの値を格納できる箱だったのに対し、配列は、(1つの)値を格納できる箱が複数つながったものと考えることができる。

 このように、変数がただ1つの値を格納できる箱だったのに対し、配列は、(1つの)値を格納できる箱が複数つながったもの、と考えることができる。VBScriptにおいて、この図のような5個の値が格納可能な配列を宣言するには次のように記述する。

Option Explicit
Dim a(4)

 このように記述すると、a(0)、a(1)、a(2)、a(3)、a(4)の5個の値が格納可能な配列を宣言したことになる。これらの値にはそれぞれEmpty値が格納されている。“(0)”の部分を、添え字といい、配列における要素の位置を示す。また“0”の部分をインデックスという。VBScriptの配列のインデックスは、常に0から始まるということに注意していただきたい。つまり、インデックスの最大数は、実際の配列のサイズより1小さいということである。このような配列を「固定サイズ配列」という。

 なお、配列変数の命名にもスカラ変数と同様、

  • 変数名の先頭文字はアルファベット
  • 変数名にはピリオド “.” を使用しない
  • 変数名は255文字以内

という制約があるので注意してほしい。

 配列に値を代入したり、代入した値を参照したりする例を次に示す。

Option Explicit
Dim intNumbers(4) 'サイズ5の配列を宣言

'配列の各要素に値を代入
intNumbers(0) = 0
intNumbers(1) = 2
intNumbers(2) = 4
intNumbers(3) = 6
intNumbers(4) = 8

'3つ目の値を参照
MsgBox "3つ目の値は" & intNumbers(2) & "です。"

 このスクリプトを実行すると次のようなメッセージ・ボックスが表示される。

配列の中の1要素を取り出すスクリプトの実行例
配列から3つ目の値を取り出している。

 この例では、インデックスの2倍の数値を配列のそれぞれの要素として格納し、3つ目の要素(添え字は“(2)”になることに注意)の値を取り出し、MsgBox関数を使って表示している。


 INDEX
  [基礎解説]チェック式 WSH入門
  第6回 VBScriptの配列を極める
  1.配列とは
    2.Forステートメントによる配列の操作
    3.動的配列
    4.多次元配列
    5.配列を操作するための関数
 
 基礎解説

ホワイトペーパーTechTargetジャパン

Windows Server Insider フォーラム 新着記事

@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

RSSフィード

スキルアップ/キャリアアップ(JOB@IT)

- PR -
- PR -

お勧め求人情報

キャリアアップ 〜JOB@IT
@IT Special -PR-
  企業の仮想化に足りない“発想”とは?
仮想化運用管理のキモは意外なところに!

New!
  操作もマニュアルも分かりやすい!
ユーザー視点で開発されたPC管理ツール

New!
  仮想化すればコストは削減できるか?
仮想化に必要な「3つの視点」を解説する

  セキュリティを知り尽くす上野氏が登壇!
@ITメールソリューションLive! in Tokyo

  運用管理の課題を“2つの観点”から分析
ユーザー満足度の高い「仮想環境」とは?

  世界に通用するストレージの作り方とは?
製品に込めた思いを富士通の開発者に聞く

  OSSで手間も時間も、障害も減った――
「マピオンの事例」オープンソース活用法

  「ノートPCの持ち出し禁止」で大丈夫?
情報漏えいを防ぐ管理手法とインフラは?

  1日の処理を1秒に――MySQLの達人が語る
「コスト削減」できるチューニング

  ドキュメント作成を自動化して、SEの作業
効率を大幅アップ! Visio 2007の魅力

  急速に広がるHyper-Vでのサーバ仮想化
そのベストプラクティスをデルが解説

  @IT主催セミナーで語られた、「担当者に
求められるセキュリティ対策」をレポート

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