DIM命令で配列を宣言する時に変数[ ]の中に使いたい個数を書けばその分だけ使えるようになるんですけど、プチコンのルールで配列の添字は「0」から数え始めるので、実質的にプログラム中で使う時に[ ]の中に書ける番号は宣言時に書いた数から1を引いた数までになります。慣れない内は指折りで0から数えてみるといいですよ。自分もそうして覚えましたし。 なぜエラーが出なかったかの理由は、でんぺんさんの説明の通り、FOR文でのカウンタ変数Iを[ ]の中に書く変数にしてないからですね。 もしDIM命令で配列宣言する時に[ ]の中に書く数字をDIM命令を使う前にA=20などすでに代入済みの変数を使ってDIM ST$[A]と書いた場合は、FOR文のカウンタ変数の終了値を添字を決める時に使った変数Aに-1したものを書けば範囲外エラーは出ないと思いますよ。