|
おはようございます。返事が送れて申し訳ありません。
>>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
|
|