配列について学ぼう
久々の更新です。今回は「配列」について解説していきたいと思います。
まず、配列について簡単に説明します。
以前に「変数」について説明したかと思います。変数は「任意の文字列や数字などの値を一時的に入れておく為の箱」といったものです。配列も似たように一時的な文字列や数字などの値を入れておける箱なんですが、その箱は「重箱の様に何段も積み重ねて扱うことが出来る」変数とイメージしてください。
変数は「一つの変数に一つの値」のみ格納出来ますが、配列は一つの変数(配列)に複数の値を積み重ねて格納出来ます。複数の値を格納する際には、「添字」と呼ばれる番号を個々の値に割り当てます。配列に格納した値を取り出すには、添字を指定してどの値を取り出すかを指定します。また、配列に格納した値のことを「要素」と呼びます。
配列イメージ
この配列ですが、実際にどのようにプログラムで使用するかを見てみないと使い方のイメージが湧かないかと思うので、さっそくサンプルコードを作成してみます。
Option Explicit Dim ArrayVal(4) ArrayVal(0) = "一つ目の要素" ArrayVal(1) = "二つ目の要素" ArrayVal(2) = "三つ目の要素" ArrayVal(3) = "四つ目の要素" ArrayVal(4) = "五つ目の要素" msgbox ArrayVal(0) msgbox ArrayVal(1) msgbox ArrayVal(2) msgbox ArrayVal(3) msgbox ArrayVal(4)
配列は初心者には少し難しいので、配列の利便性を無視し、配列を取り敢えず使ってみるだけのサンプルコードになっています。
このサンプルプログラムを実行すると、メッセージボックスが5回表示されると思います。
では、行ごとに解説していきます。
2行目
Dim ArrayVal(4)
変数の宣言をしますが、変数名の右側に括弧で括られた数字が記述されています。これは配列として変数を使用する際の特殊な宣言方法です。
配列は予め要素を何個格納するかを決めて宣言をします。変数名の横に括弧で括り、要素数を数字で指定します。ただ、注意が必要なのは、配列を扱う際の要素数の数え方は0から始まります。例えば要素が1個だけ入る配列を宣言するなら括弧には0を指定します。
今回のコードで言えば、要素数は4が指定されていますが、実際に格納出来る要素数は5個ということになります。因みに、5個の要素を格納は出来ますが、必ず5個の要素に値を格納する必要はなく、要素を余らせてしまっても問題はありません。単純に格納出来る要素数の上限が5個というだけです。
因みに、配列は英語で「Array」ですが、変数を付ける際に視覚的に配列用の変数だと分かる様な名前の方が、プログラミング時のミスが防げたり解読性が向上すると思うので、配列用の変数だと明らかに分かる様な変数名を使うことを推奨します。
4行目~8行目
ArrayVal(0) = "一つ目の要素" ArrayVal(1) = "二つ目の要素" ArrayVal(2) = "三つ目の要素" ArrayVal(3) = "四つ目の要素" ArrayVal(4) = "五つ目の要素"
2行目で宣言した配列に文字列を代入しています。ただ、この代入についても、配列に対する代入では通常の変数とは異なり、変数名と併せて添字を指定して代入します。
配列の0番目の要素には”一つ目の要素”という文字列を入れなさい。
配列の1番目の要素には”二つ目の要素”という文字列を入れなさい。
といった感じで代入をしていきます。もし添字を指定しなかった場合はエラーになります。
10行目~14行目
msgbox ArrayVal(0) msgbox ArrayVal(1) msgbox ArrayVal(2) msgbox ArrayVal(3) msgbox ArrayVal(4)
4行目から8行目で格納した配列の値を取り出してMsgbox関数に渡しています。
配列から値を取り出す際には、変数名と併せて添字を指定します。代入時と同様に、添字を指定しないで普通の変数の様に値をを取り出そうとしてもエラーになります。2行目で配列として変数を宣言している以上、必ず配列としての取り扱いしか許容されません。
今回のサンプルコードでは、配列の仕組みを理解してもらう為に、配列の利便性を無視し、ただ配列を使ってみることだけを目的にした処理内容になっている為、実際のプログラミングではどの様に活用出来るのかが分かり辛いかと思います。
活用例としては、添字は変数を使用出来ます。例えば、カウンター用の変数を添字に用いて、ループ処理と併せて使用することで、多くの値を一つの配列という塊に格納出来ます。その様な処理としてよくあるパターンとしては、例えばどこかのデータベースから出力させたCSVファイルをVBScriptのプログラム内で開き、CSVファイル内の行を一行ずつ読み込んで、一行丸ごと配列の要素として代入します。そうすると、CSVファイル内のデータは一つの配列に全て格納することが出来ます。その後、その配列をループ処理で回しながら必要な処理を実行するといった活用方法などがあります。
今回は最初に配列の要素数を指定して宣言しましたが、要素数が固定で指定出来ないケースもあり、そういった場合は要素数を最初は指定せず、後から動的に要素数を指定して宣言し直すようなことも可能です。
また、要素は2次元など多次元化することも可能です。例えば2次元化することで、縦の位置、横の位置を仮想的に持たせた表の様な配列を作ることも可能です。まぁ多次元化するとプログラムがややこしくなりますし、制約も発生するようになる為推奨はしませんが、取り敢えず、配列を上手く活用できるようになったら、初心者は卒業と呼んでも良いのではないかと思っています。
それぐらい重要なので、是非マスターして頂きたいです。
ではでは、本日はこれで失礼致します。
また次回もよろしくお願い致します。
↓次回の記事はこちら
↓前回の記事はこちら
↓Windows10環境で文字化けする場合はこちら
Windows10のメモ帳の既定の文字コードは、Windows10のバージョン1903から「UTF-8」になりました。
VBScriptはUTF-8に対応していない為、アルファベットは問題ないのですが、日本語については文字化けします。
その為、Windows10の場合はファイルを保存する場合に、文字コードを「ANSI」に変更して保存してください。