| 2020/04/25(Sat) 00:04:15 編集(投稿者)
■syokin.kev の 62行め
&番号=#条件選択(&D列="[賞金額17]",0,&D列="[賞金額18]",1,&D列="[賞金額19]",2,&D列="[賞金額20]",3,&D列="[賞金額21]",4,&D列="[賞金額22]",5, &D列="[賞金額23]",6,&D列="[賞金額24]",7,&D列="[賞金額25]",8,&D列="[賞金額27]",9,&D列="[賞金額28]",10, &D列="[賞金額29]",11,&D列="[賞金額30]",12,&D列="[賞金額31]",13)
↑この部分で、
&D列="[賞金額25]",8,&D列="[賞金額27]",9,&D列="[賞金額28]",10,
↑のように、&D列="[賞金額25]",8 の次が、&D列="[賞金額27]",9 になっていますね。
ということで、この場合、&D列="[賞金額26]"の時に、&番号 の値は未定義値になります。
ここは、
&D列="[賞金額25]",8,&D列="[賞金額26]",9,&D列="[賞金額27]",10,&D列="[賞金額28]",11,
と、&D列="[賞金額26]",9, を挿入して、以降の数値を1づつ増やすのが正しいのではありませんか?。
<結論>
「KU1156:配列型変数の添字が定義の範囲を超えています」のエラーになる理由は、
62行めの実に単純なケアレスミスで、
オブジェクト操作 @a賞金名1{ソース=&ソース[&番号+1]} の際に、&番号 が未定義値であったからです。
「配列型変数の添字が定義の範囲を超えています」を見ると要素数をオーバーしていると思うでしょうけれど、
実際には、要素数が未定義値 → 要素番号 1 〜 31 の範囲外という意味だったんですね。
エラーメッセージが分かり難いのですが、これはどんなソフトも似たりよったりなので、とにかく慣れるしかありませんね。
さて、これでエラーの原因の1つは解消すると思いますが、62行め付近にはまだ他にもエラーを誘発する場所がありますよ。
それは、&ソース[&番号+17] の &番号+17 が 31 を超える場合です。※ &番号=&番号+1 で &番号 が 15になる場合!
62行め〜65行めをよく見直してください。※私には何度見てもこの部分のロジックが非常に分かりにくいので手を付けません。
↑これは、そちらの自力で解決できるだろうと思います。
◇ ◇ ◇ ◇
今回これを発見したのは、
[トレース出力]ウィンドウに &番号 の値を表示して、値が未定義値になることを見出したからです。
さらに、値が未定義値で「KU1156:配列型変数の添字が定義の範囲を超えています」のエラーになることを経験的に知っていたので、
syokin.kev の 62行めにたどり着いたというわけです。
◇ ◇ ◇ ◇ ◇ ◇
おそらく、syokin.kev の 62行めの"[賞金額26]"のスッポ抜けがエラーの引き金になっています。
しかし、62行め以降の条件判断にも問題があるようです。
プログラムを書きなおしたのは貴殿自身なのですから、後は貴殿自身で解決してください。
もう私を呼び出さないでくださいね。(@^^@)/~~~
|