配列のサイズをMX、挿入元の位置をM、挿入先の位置をNとすると DIM ARY[MX] INM=M:TON=N IF INM!=TON&&MX>INM&&MX>TON THEN D=INM>TON:D=!D-D SWAP ARY[INM],ARY[TON] FOR I=INM TO TON-D*2 STEP D SWAP ARY[I],ARY[I+D] NEXT ENDIF (なお淫夢は関係ありません) ぶっちゃけ、はるさんみたくCOPY命令使った方が速いんですけど。
配列arrayのsrc番目の要素をdest番目に移動して、また会った要素は全てローテーションさせる操作をするには以下のコードを書けば良いです tmp = array[src] if src > dest then copy array,dest+1,array,dest,src-dest elseif src < dest then copy array,src,array,src+1,dest-src endif array[dest] = tmp ちなみにこのコードは正しく動作するかチェックしていません copyの呼び出しが正しくないかも