Keyword Reference

For...In...Next

オブジェクトコレクション、配列の要素を列挙します。

For <$Variable> In <expression>
    statements
    ...
Next

 

パラメータ

Variable 要素を代入する変数
expression 少なくとも1つの要素を持つオブジェクト、配列を結果として持つ式でなくてはなりません。

 

注意

MustDeclareVarsオプションが有効になっている場合であってもVariableはLOCALスコープで自動で作られます。
expressionが要素を持たないオブジェクトコレクションであった場合、また多次元の配列だった場合、ループはスキップされVariableには空の文字列が代入されます。
expressionがオブジェクトでも配列でもなくCOM Errorハンドルが設定されていない場合、スクリプトはエラー停止します。
Autoitの配列はFor...In使用時には読み取りだけが可能です。For...Inループ内で変数への代入をおこなってもその変更は配列には反映されません。列挙している配列の内容に変更を加える場合はFor...Toループを使用してください。

For...In...Next句は入れ子構造にできます。

 

関連

With...EndWith

 


;配列を使用
Dim $aArray[4]

$aArray[0]="a"
$aArray[1]=0
$aArray[2]=1.3434
$aArray[3]="test"

$string = ""
FOR $element IN $aArray
    $string = $string & $element & @CRLF
NEXT

Msgbox(0,"For..IN Arraytest","Result is: " & @CRLF & $string)

;オブジェクトコレクションを使用

$oShell = ObjCreate("shell.application")
$oShellWindows=$oShell.windows

if Isobj($oShellWindows) then
  $string=""

  for $Window in $oShellWindows
    $String = $String & $Window.LocationName & @CRLF
  next

  msgbox(0,"","You have the following windows open:" & @CRLF & $String)
else

  msgbox(0,"","you have no open shell windows.")
endif