|
こんばんは。
一応作ってみました。
ユーザーフォームに
TextBox1・・・役職入力用
TextBox2・・・氏名入力用
CommandButton1・・・マクロ実行用
を用意してください。
シートは、シート名「点数集計表」
一行目にA列に「役職」
B列に「氏名」
C列に「点数」
D列に「チェック」が入力済みと仮定します。
いつもお世話になっているichinoseさんから
>出来ないことはありません・・・が、
>オブジェクトを増やしていくということは、非常に重くなってしまいます。
>ユーザーフォームのチェックボックスから
>TrueかFalseというデータのみを追加していくという方法で
という忠告がでていますが、
D列にチェックボックス(フォームの)が張り付くようにしています。
都合が悪ければ、ユーザーフォームにチェックボックスを設け、その結果のみを
転記するように変更してください。
同姓同名などの問題点は残していますが、入力なしと氏名の二重登録のチェックは
考えてみました。
参考にということで試してみてください。
Private Sub CommandButton1_Click()
Dim myR As Range
Dim chcB As Object
Dim myLeft As Single, myTop As Single
Dim myWidth As Single, myHeight As Single
Dim A As Variant
If Me.TextBox1.Text = "" Or Me.TextBox2.Text = "" Then
MsgBox "役職、氏名を入力してください。"
Else
With Worksheets("点数集計表")
A = Application.Match(Me.TextBox2.Text, .Range("B:B"), 0)
If Not IsError(A) Then
MsgBox "この人は登録済みです。"
Exit Sub
End If
With .Range("A65536").End(xlUp)
.Offset(1, 0).Value = Me.TextBox1.Text
.Offset(1, 1).Value = Me.TextBox2.Text
Set myR = .Offset(1, 3)
myTop = myR.Top
myLeft = myR.Left
myWidth = myR.Width
myHeight = myR.Height
End With
Set chcB = .CheckBoxes.Add(myLeft, myTop, myWidth, myHeight)
chcB.Characters.Text = "チェック"
End With
End If
End Sub
|
|