2次元配列をランダムに並び換える
以前の記事「ランダムに並び替える 」では
セルの内容を乱数を使ってランダムに並び換えました。
今回は配列をランダムに並び換えたいと思います。
上記の記事の方法でも
配列を一回セルに出力してから
ランダムに並び換えて
再び配列に格納するという手順で可能です。
今回は配列のままランダムに並び換えたいわけですが、
考え方はセルの内容をランダムに並び換えるときと同じです。
あるランダムに並べ換えたい2次元配列vDataがあるとします。
vDataのサイズはUbound(vData)行、Ubound(vData, 2)列です。
そこでvDataに1列足したもう1つの配列vData2を作ります。
サイズはUbound(vData)行、Ubound(vData, 2)+1列です。
vData2の1列足した列に乱数を入れて
その列を基準に昇順か降順にソートします。
足した列を削除したものを
元の配列vDataに入れれば
vDataをランダムに並び換えたものになります。
下のコードの説明をします。
aからjまでのアルファベットを順番に入れた配列vDataを
ランダムに並び替えます。
結果を見るために
最後にセルに配列の内容を出力しています。
コードはこちら
Sub macro110312a() Sheets.Add |
実行後のシートの例:
ここではvDataという配列を作成してから
ランダムに並び替えていますが、
すでに配列がある場合は
vDataにその配列を当てはめて考えてください。
タイトルにあるように
vDataには2次元配列を想定しています。
| 固定リンク
この記事へのコメントは終了しました。

コメント