Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


16197 / 76734 ←次へ | 前へ→

【66008】ランダムに数字を振り分けたいんですが
質問  ogi  - 10/7/15(木) 2:40 -

引用なし
パスワード
   ランダムに数字を振り分けて、各列で指定のそれぞれの数字の数を指定して振り分けたいのですが、下記のようなバラバラに振り分けるのではなくA列の3・4を3を4つ、4を3つという感じに条件付けたいんですが可能でしょうか?
A B C D E F
3 1 3 0    4 0
3 2 3 1    3 1
3 2 3 2 4 2
3 0 3 1    4 1
4 1 3 0    4 1
3 1 3 1    3 1
4 1 3 0 3 0

因みに、勤務表を自動で作成するのが最終目的です。
自分で作成したのを載せておきます。
----------------------------------------------------
Sub サンプル()

Dim intMax As Integer
Dim intMin As Integer
Dim i As Integer
Dim k As Integer

intMax = 4
intMin = 3

Randomize

For i = 1 To 10
For k = 0 To 4 Step 2
For R = 7 To 12 Step 2
For t = 15 To 20 Step 2
For s = 23 To 28 Step 2
Cells(i + 1, k + 1) = Int((intMax - intMin + 1) * Rnd + intMin)
Cells(i + 1, R + 1) = Int((intMax - intMin + 1) * Rnd + intMin)
Cells(i + 1, t + 1) = Int((intMax - intMin + 1) * Rnd + intMin)
Cells(i + 1, s + 1) = Int((intMax - intMin + 1) * Rnd + intMin)
Next s
Next t
Next R
Next k
Next i


intMax = 2
intMin = 0

Randomize

For i = 1 To 10
For k = 1 To 5 Step 2
For R = 8 To 13 Step 2
For t = 16 To 21 Step 2
For s = 24 To 29 Step 2
Cells(i + 1, k + 1) = Int((intMax - intMin + 1) * Rnd + intMin)
Cells(i + 1, R + 1) = Int((intMax - intMin + 1) * Rnd + intMin)
Cells(i + 1, t + 1) = Int((intMax - intMin + 1) * Rnd + intMin)
Cells(i + 1, s + 1) = Int((intMax - intMin + 1) * Rnd + intMin)
Next s
Next t
Next R
Next k
Next i

End Sub
-------------------------------------------------
もっとスマートなのがあれば手直しお願いいたします。

1 hits

【66008】ランダムに数字を振り分けたいんですが ogi 10/7/15(木) 2:40 質問
【66009】Re:ランダムに数字を振り分けたいんですが 通りすがり 10/7/15(木) 2:55 発言
【66010】Re:ランダムに数字を振り分けたいんですが SS 10/7/15(木) 10:59 発言
【66019】早速のご教授真に有り難うございました ogi 10/7/15(木) 22:54 お礼

16197 / 76734 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free