fさんが指摘されたように、aを、文字ではなく、数字として考えて下さい。
たとえば、5桁まで増やすとすると、次のようになります。
randomize
val=10
repeat 5
a=rnd(val)
val=val*10
wait 1
mes a
loop
これで解決にしてもいいのですが・・・
rnd 関数は、上の例で言うと0からvalまでの数字で返します。
たとえば、2巡目に2桁の数字ではなく、1桁の数字が返されると
そこの数字は2桁ではなく、1桁になってしまいます。
そのことは、上のスクリプトを何度か実行すると、再現されると思います。
そこで、桁数をそろえるために、strf 関数を使用してみました。
randomize
val=10
repeat 5
a=rnd(val)
val=val*10
wait 10
if cnt=0 : mes a
if (cnt=1)&(a<10) : b=strf("%02d",a) : mes b
if (cnt=1)&(a>10) : mes a
if (cnt=2)&(a<100) : b=strf("%03d",a) : mes b
if (cnt=2)&(a>100) : mes a
if (cnt=3)&(a<1000) : b=strf("%04d",a) : mes b
if (cnt=3)&(a>1000) : mes a
if (cnt=4)&(a<10000) : b=strf("%05d",a) : mes b
if (cnt=4)&(a>10000) : mes a
loop
5桁ならこれでできるのですが、それ以上の大きな桁まで表示するときには
膨大な行数になってしまいます。
もっとうまい書き方があるかも知れませんが思いつきませんでした。
その点、最初のスクリプトは、ループの回数を増やすだけで
簡単に表示できます。
ZOCmifさんのやりたいのはどちらなのか分からなかったので、
両方の方法を、考えてみました。