| 
    
     |  | おはようございます。返事が送れて申し訳ありません。 
 
 >>AからG校は、全て同じ人数なんですか?
 例えば、3人なら全校3人 4人なら、全校4人?
 
 今職場に来て、確認してみると、
 A校2人、B校5人 C校3人 D校4人 E校3人 F校3人 G校10人の計30人でした。
 
 >>出来ているコードは、提示してください。
 
 自分が理解できる範囲で、乱数関数を入れて昇順でならべかえました。
 
 
 >>別のアルゴリズムも必要ですね!!
 
 どのように、考えていけばいいのかわからない状態です。
 教えていただけると、大変ありがたいです。
 よろしくお願いいたします。
 
 
 Sub 乱数の発生()
 
 Application.ScreenUpdating = False
 
 '名簿最終行の確認
 Dim i As Integer
 i = 3
 Do While Cells(i, 3) <> ""
 i = i + 1
 Loop
 
 '乱数の発生
 Range("K3").Formula = "=RAND()"
 Range("K3").Copy
 Range(Cells(4, 11), Cells(i - 1, 11)).PasteSpecial
 
 '関数を値のみ貼り付けて、値を固定する
 Range(Cells(3, 11), Cells(i - 1, 11)).Copy
 Range("K3").PasteSpecial Paste:=xlValues
 
 
 '乱数の昇順で並べ替え
 Range(Cells(3, 2), Cells(i - 1, 11)).Select
 Range(Cells(3, 2), Cells(i - 1, 11)).Sort _
 key1:=Range("K3"), order1:=xlAscending
 
 '乱数関数の列のクリア
 Range("K3:K32").ClearContents
 Range("A1").Select
 
 ' スクロール列の設定
 ActiveWindow.ScrollColumn = 2
 ' スクロール行の設定
 ActiveWindow.ScrollRow = 1
 
 Application.ScreenUpdating = True
 
 End Sub
 
 
 |  |