Excel VBA質問箱 IV

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

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


16199 / 76738 ←次へ | 前へ→

【66010】Re:ランダムに数字を振り分けたいんですが
発言  SS  - 10/7/15(木) 10:59 -

引用なし
パスワード
   ▼ogi さん:

こんにちは、やりたいことが良く分かりませんがこんなことでしょうか?
ただし全てをランダムでと言うのはいかがなものかと感じます。
基本動作があっていれば条件を追加して応用してみてください。
※IF文を使わなかったので面倒くさいことになっているかもしれません。

Sub test()
  Dim Data(2, 10) As Variant  '参照データ用
  Dim dat(2, 3, 2) As Variant '制御用
  Dim SetD(10) As Variant, TmpD As Variant '参照場所決定用
  Dim i As Integer, j As Integer, k As Integer, m As Integer
  Dim Gr As Integer, Cl As Integer, XX As Integer '複数表作成用
  
  Randomize
  
  '第1グループの分割
  dat(1, 1, 1) = 6
  dat(1, 2, 1) = 4
  '第2グループの分割
  dat(2, 1, 1) = 5
  dat(2, 2, 1) = 3
  dat(2, 3, 1) = 2
  
  '第1グループの要素
  dat(1, 1, 2) = "田中" '4
  dat(1, 2, 2) = "鈴木" '3
  '第2グループの要素
  dat(2, 1, 2) = "橋本" '2
  dat(2, 2, 2) = "山田" '1
  dat(2, 3, 2) = "加藤" '0
  
  '各グループの要素の格納
  For i = 1 To 2
    m = 0
    For j = 1 To 3
      For k = 1 To dat(i, j, 1)
        m = m + 1
        Data(i, m) = dat(i, j, 2)
      Next k
    Next j
  Next i
  
  For i = 1 To 10
    SetD(i) = i
  Next i
  
  For Gr = 0 To 3
    For Cl = 0 To 5
      XX = Cl Mod 2 + 1
      TmpD = SetD
      j = 10
      For i = 1 To 10
        k = Int(Rnd * j) + 1
        Cells(i + 1, Gr * 8 + Cl + 1).Value = Data(XX, TmpD(k))
        For m = k To j - 1
          TmpD(m) = TmpD(m + 1)
        Next m
        j = j - 1
      Next i
    Next Cl
  Next Gr
End Sub
0 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 お礼

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