Excelで三角くじを作ってみよう

Step 5 当たりを乱数で作成する

最初に、当たり枚数分当たりくじを乱数で作成しておきます。
くじ枚数分の配列を作成し、はずれは0で当たりには1をセットします。
当たり枚数分ループで回して作成しています。
これで毎回違った当たりになります。


Homeへ > Excelでアプリケーションソフト2 > 三角くじを作ってみよう

シート画面

テストで90度回転させました。テキスト文字も回転しています。
当たり枚数 作成画面


シートのVBAコード

下記のVBAコードに変更してください。

'作成開始ボタン
Private Sub CommandButton1_Click()
    Dim ln1 As Long
    Dim ln2 As Long
    
    ln1 = MyGetSuchi("C2")
    If ln1 <= 0 Or ln1 > 100 Then
        MsgBox "くじ枚数は1~100の範囲で入力してください。"
        Exit Sub
    End If
    
    ln2 = MyGetSuchi("C3")
    If ln2 < 0 Or ln2 > ln1 Then
        MsgBox "当たり枚数は,くじ枚数より少なくしてください。"
        Exit Sub
    End If
    
    Range("C2") = ln1
    Range("C3") = ln2
    'オートシェイプ作成
    ExMakeShape
        
    '当たりくじを作成する
    ExAtariKujiMake ln1, ln2
End Sub

下記のVBAコードを追加してください。

Private atarikuji(100) As Integer

'当たりくじを作成する
Sub ExAtariKujiMake(maisu As Long, atari As Long)
    Dim i As Integer
    Dim ln As Long
    Dim count As Long
    
    '初期化
    If atari > 0 And maisu = atari Then
        For i = 1 To maisu
            atarikuji(i) = 1
        Next
        Exit Sub
    Else
        For i = 1 To maisu
            atarikuji(i) = 0
        Next
    End If
    
    If atari = 0 Then
        Exit Sub
    End If

    '乱数の生成
    Randomize
    '乱数で当たりクジを作る
    count = 0
    Do
        '1~くじ枚数の乱数
        ln = Int((Rnd * maisu) + 1)
        If atarikuji(ln) = 0 Then
            atarikuji(ln) = 1
            count = count + 1
        End If
    Loop Until count >= atari
End Sub


Homeへ > Excelでアプリケーションソフト2 > 三角くじを作ってみよう

■■■
このサイトの内容を利用して発生した、いかなる問題にも一切責任は負いませんのでご了承下さい
■■■
当ホームページに掲載されているあらゆる内容の無許可転載・転用を禁止します


Copyright (c) Excel-Excel ! All rights reserved