Sub 学級委員長を抽選()
Dim result, lastRow, winnerRow As Integer
' result(結果)は整数
' lastRow(最後の行)は整数
' winnerRow(委員長)は整数
Randomize
' ランダムな値を生成するためのシードを初期化する
lastRow = Range("A1").SpecialCells(xlCellTypeLastCell).row
' 結果の最後の行を取得する
result = Int((lastRow - 1 + 1) * Rnd + 1)
' ランダムに行を選択する
' Int((最大値-最小値+1)* Rnd +最小値))
' 最小値~最大値の整数値を乱数として出力。
' シンプルに result = Int((lastRow) * Rnd) でも大丈夫
winnerRow = result + 1
' ランダム結果の行に1を加えてずらし、決定行に代入
' シンプルに winnerRow = result でも大丈夫
Range("B" & winnerRow).Select
' 選ばれた参加者の行を選択する
’ BはメンバーリストのあるB列のこと
MsgBox "学級委員長は、" _
& Chr(13) & ActiveCell.Value & " さんに決まりました。"
' メッセージボックスに結果を表示
' Chr(13) は改行。ActiveCell.Valueは選択しているセル
End Sub