本文へスキップ

簡単!!エクセルVBAメモ

3.VBA応用(使用ケース集)

ランダム


  ランダムの数字を使用したい場合があります。(抽選とか)
  その場合のサンプルプログラム作りました。
  

【サンプル処理イメージ】 ※抽選のプログラム
   @マクロを実行する。
   Aランダムで数字を出して、抽選する


  【イメージ】
   ※D列にある対象者から、D4に記載の人数を選んで、H列に貼り付ける
       



VBAサンプル
================================================
=== 開始!!=======================================
================================================

Sub ランダム処理()

'**************************************************
'***  【概要】
'***    ランダムで抽選するサンプル
'**************************************************

'*************************************************************
'***  1.定義
'*************************************************************

    Dim OK_CNT As Variant
    Dim END_CNT As Variant
    Dim WK(100) As String  '最大人数100を想定
    
    Dim tate1 As Variant
    Dim tate2 As Variant

    OK_CNT = Cells(4, "D")
    END_CNT = 0
    tate1 = 8
    tate2 = 8

'*************************************************************
'***  2.メイン処理
'*************************************************************
   '@対象をWK(配列)に入れる
    Do Until Cells(tate1, 4) = ""
       WK(tate1 - 8) = Cells(tate1, 4)
       tate1 = tate1 + 1
    Loop

   'Aランダムで数字を取得して、配列から抽出する。
100
    Do Until Cells(4, 4) + 8 = tate2
        randam_cnt = Int((tate1 - 8 - 1 + 1) * Rnd)
        
        If WK(randam_cnt) = "END" Then
         GoTo 100  '既に抽出されたデータの場合は戻る。
        End If
        
        Cells(tate2, "h") = WK(randam_cnt)
        WK(randam_cnt) = "END"
        tate2 = tate2 + 1
    Loop
  
   'B終了処理
    MsgBox ("抽選終了")
    
End Sub

================================================
=== 終了!!=======================================
================================================


  トップページへ戻る