本ページには広告が含まれています。
配列やコレクションなどのグループの各要素に対して繰り返し処理を行います。
配列変数には配列の他に COMのコレクション、GETDIR関数 (スクリプト関数)、GETITEM関数 (スクリプト関数)、GETALLWIN関数 (スクリプト関数)のスクリプト関数での利用が可能です。これら3つの関数は、配列変数に指定した場合は取得した要素を配列で返し、それ以外では取得した要素の数を返す特別な関数です。
配列変数に文字列・数値が指定された場合には1文字ずつ要素分解します。
同じ繰り返し処理を行うものとしてFOR-TO文もありますが、配列を扱うときはFOR-IN文、それ以外はFOR-TO文というような使い分けで良いと思います。
- 構文
- FOR 変数 IN 配列変数
処理NEXT
- 引数
- 戻り値
COMオブジェクトのコレクション
コレクション名はオブジェクト名の複数形で表されます。例えば、ExcelのWorkbook オブジェクトとWorkbooks オブジェクト、ShellのFolderItem オブジェクトとFolderItems オブジェクトなどです。また、コレクションは必ずItemプロパティとCountプロパティを持っています。
コレクションをFOR-IN文で回すには以下のように記述します。
FOR オブジェクト IN コレクション
// 何らかの処理
NEXTFOR-IN文で記述すると、FolderItems.Item(i)の記述をせずともFolderItemオブジェクトを取得することができます。
FOR FolderItem IN FolderItems
PRINT FolderItem.Name
NEXTFOR-TO文に書き換えると以下のようになります。
FOR i = 0 TO FolderItems.Count - 1
DIM FolderItem = FolderItems.Item(i)
PRINT FolderItem.Name
NEXT使い方
一次元配列の各要素を出力
DIM array[] = 25, 354, 851, 2, 4562
FOR num IN array
PRINT num
NEXT- 結果
25 354 851 2 4562
配列変数に文字列を指定
配列変数に文字列を指定した場合、1文字ずつ出力されます。数値を指定した場合も同じです。
FOR item IN "alphabet"
PRINT item
NEXT- 結果
a l p h a b e t
デスクトップにあるファイルの一覧を出力
GETDIR関数は取得した要素の数を返すので配列ではありませんが、For In構文においては取得した各要素を返す特別な関数です。
CONST ssfDesktop = 0
DIM Shell = CREATEOLEOBJ("Shell.Application")
DIM Folder = Shell.NameSpace(ssfDesktop)
FOR Item IN GETDIR(Folder.Self.Path)
PRINT Item
NEXT関連記事
- CALCARRAY関数 (スクリプト関数)
- 配列データを計算します。
- GETALLWIN関数 (スクリプト関数)
- 全ウィンドウのIDを取得します。
- GETOLEITEM関数 (スクリプト関数)
- コレクションを取得します。
- JOIN関数 (スクリプト関数)
- 配列の中身を区切り文字で結合し、文字列として返します。
- QSORT関数 (スクリプト関数)
- 配列の中身をソートします。
- SETCLEAR関数 (スクリプト関数)
- 配列を指定された値で埋めます。
- SHIFTARRAY関数 (スクリプト関数)
- 配列データをシフトします。
- 連想配列
- 連想配列とは、自動的に割り当てられる数字をキーとして持つかわりに、自由に任意の文字列を割り振ることができる配列のことです。添え字に番号の変わりに名前をつけることでわかりやすく管理することができます。
- LENGTH関数 (スクリプト関数)
- 文字数もしくは配列サイズを返します。
- POPUPMENU関数 (スクリプト関数)
- ポップアップメニューを表示します。
