WinActorで「配列名を入力してください」というエラーの解決方法

WinActorの"ライブラリ > 03_変数 > 02_辞書と配列"にある
「1次元配列操作(情報更新)」「1次元配列操作(ダンプ)」などで配列名を指定しているのに

スクリプトの実行に失敗しました。
エラー番号: 1
内容: 配列名を入力してください

というエラーが出る場合の解決方法です。

原因

これは配列名に値が未設定の変数を指定した場合に発生します。
配列名には「配列を識別する名称」、すなわち文字列を設定する必要があるからです。つまり、配列用の変数を用意する必要はありません。

おそらく、プログラミング経験者の方が使い方を間違いやすいのではないでしょうか。
配列はWinActor内部で管理されると思ってください。

解決方法

文字列を指定なので、配列名のボックスには
値⇒ 配列を識別する名称
といった指定をします。変数で指定する場合は該当ノード実行時に指定した変数が

変数名 現在値
任意の名称 配列を識別する名称

となるようにします。固定であれば初期値に「配列を識別する名称」を指定しておくだけで構いません。

配列のクリア

同一の配列を使い回したい場合など、配列をクリアしたいところですがWinActorではこのようなライブラリは用意されていません。
スクリプト実行にて以下のような記述すれば任意の配列のみクリアできます。

'インプット変数
arrayName = !配列名!
'入力チェック
If (Len(arrayName) = 0) Then
    errorMsg = "配列名を入力してください"
    Err.Raise 1, "", errorMsg
    WScript.Quit
End If
'配列の存在確認
If rootArray.Exists(arrayName) Then
    ' 削除
    rootArray.Remove arrayName
End If

変数を他のスクリプト実行アクションと共有するにチェックを入れる。

名前は「1次元配列操作(配列削除)」とでもしておきましょう。

このエントリーをはてなブックマークに追加
にほんブログ村 IT技術ブログへ

コメント

メールアドレスが公開されることはありません。 が付いている欄は必須項目です