シートのVBAコード
下記のVBAコードを追加してください。
'開始用のボタンを動的に作成
Private Sub ExMakeStartButton(nin As Long)
Dim j As Integer
Dim lRow As Long
For j = 0 To (nin - 1) * 2 Step 2
'作成位置
Cells(AMIDASTROW - 2, 2 + j).Select
With ActiveSheet.OLEObjects.Add(ClassType:="Forms.CommandButton.1", _
Link:=False, DisplayAsIcon:=False)
.Object.Caption = _
Cells(AMIDASTROW - 1, 2 + j)
.Object.Font.Size = 11
'背景色
.Object.BackColor = RGB(255, 217, 5)
'ボタンサイズ
.Width = ActiveCell.Width
.Height = ActiveCell.Height * 2
End With
Next
End Sub
下記のVBAコードに変更してください。
'コマンドボタンのクリックイベント
Private Sub CommandButton1_Click()
Dim ln As Long
On Error Resume Next
'参加人数のチェック
ln = Range("D2")
If ln <= 1 Or ln > 20 Then
MsgBox "参加人数は2~20名の範囲で入力してください。"
Exit Sub
End If
On Error GoTo 0
If Left(CommandButton1.Caption, 6) = "Step 1" Then
'あみだくじを描く
ExMakeAmida ln
'名前の入力
ExInputName ln
Else
'開始用のボタンを動的に作成
ExMakeStartButton ln
End If
End Sub
シート画面
「Step 2 くじを引く」ボタンをクリックすると、入力された名前の上に、動的に名前が入ったボタンが作成されます。