80回ランダムな名前で席替えランダムな席替えの名前版になります。前回(2013_macro_79.htm)は、席に生徒番号をランダムに割り当てるというものでした。番号を割り当てるのでは、そっけないという場合や、番号を忘れた生徒はどうするのか、などという問題が起こるかもしれません。そこで、今回は座席に名前を表示するというタイプの席変え版です。1次元配列のデータ型をStringにして、生徒の名前を格納した点です。使うシートは、名前を入力する席順用のシートと、名簿が記載された作業用のシートの2枚です。作業用のシートには、A列に生徒番号(出席番号)B列に生徒名、C列はランダム値を入力するため、D列はランダム値から順位を得るために空欄となっています。席替え用に乱数を生成するC列にはRAND関数を使って乱数を入力します。乱数を生成して、隣の列に順番を入力するコードは以下のようになります。(はじめにすべてのモジュールで使えるようにパブリック変数を宣言しています。発生させた後に隣のD列に乱数の大きさによる順位を取得しています。メソッドを利用しています。コードを実行すると、下図のように順位を取得できます。SortオブジェクトでSortする次に、乱数から得られた順番を昇順でならべ変えます。使うのはSortオブジェクトになります。Excel2003までは、Sortメソッドで並べ替えを行っていましたが、Excel2007からは、Sortオブジェクトが追加されました。Subコードを実行すると、下図のようになります。