HOME >>ユーザーフォーム(席替え処理)

今回はユーザーフォームで席替え処理書いていきます。

ユーザーフォームの中で動かしていきたいと思います。

仕様としては、今回は4人での席替えにします。

ユーザーフォームにラベル×4とテキストボックス×4、ボタン×1を設置します。

名前はラベルは1〜4までをつけましょう。

この様な感じです↓



・実行ボタンを押すとランダムで1〜4までに人を振り分ける。

・人の名前はA1〜A4までの値を使用する。

プログラム例は↓

'実行ボタンクリック時
Private Sub CommandButton1_Click()
'配列変数(名前を代入する)
Dim ha(3) As String
'乱数をいれる
Dim ran As Integer

'クリアー処理
Call clear
'判定処理の変数
Dim hantei As Boolean

For i = 1 To 4

'1〜4までの乱数を発生させる
 ran = Int(Rnd * 4 + 1)
 
'変数に名前の値を代入する
 ha(i - 1) = Range("A" & i).Value
'判定の変数にFalseを指定する
 hantei = False
'判定の変数がTrueになるまで繰り返す
 Do Until hantei = True
 
'乱数によって処理を変える
   Select Case ran
     
'乱数が1の場合は
       Case 1
       
'テキストボックス1が空ならば
         If Me.TextBox1.Text = "" Then
         
'配列の値をテキストボックスにいれる
           Me.TextBox1.Text = ha(i - 1)
           
'判定変数をTrueにする
           hantei = True
       
'空じゃなければ
         Else
         
'もう一度、乱数を発生させる
           ran = Int(Rnd * 4 + 1)
         End If
       Case 2
         If Me.TextBox2.Text = "" Then
           Me.TextBox2.Text = ha(i - 1)
           hantei = True
         Else
           ran = Int(Rnd * 4 + 1)
         End If
       Case 3
         If Me.TextBox3.Text = "" Then
           Me.TextBox3.Text = ha(i - 1)
           hantei = True
         Else
           ran = Int(Rnd * 4 + 1)
         End If
       Case 4
         If Me.TextBox4.Text = "" Then
           Me.TextBox4.Text = ha(i - 1)
           hantei = True
         Else
           ran = Int(Rnd * 4 + 1)
         End If
   End Select
 Loop

Next i

End Sub


'クリア処理
Sub clear()

Me.TextBox1.Text = ""
Me.TextBox2.Text = ""
Me.TextBox3.Text = ""
Me.TextBox4.Text = ""

End Sub

配列変数にはエクセルシートの値を代入。

Do〜Loopで判定の変数がTrueになるまで繰り返す。

こちらは、Do〜Loopのみを記述して、OKになったらExit Doで抜けるでもOKです。

同じ値が入らないように、値をチェックして違う値が出るまで乱数を繰り返しています。

今回は、テキストボックスの値が入っているか、入ってないかで判定をしています。


最後にこのフォームを使うために、シートにボタンを追加して

フォーム名.Show

を記述しましょう。


次はファイル名を取得について書いていきます。

      

アクセスカウンター

関連書籍

inserted by FC2 system