|
▼ponpon さん:
こんにちは。ponpon様に教えていただいたものを元に作ってみました。
1.ユーザーフォームは入力を3つとしました。
・職務(コンボボックス)
・社員名(テキストボックス)
・社員番号(テキストボックス)
2.C列を社員番号としました。
3.チェックボックスはT列に配置しました。
結果、ほとんど私の理想どおりの形となりました。ありがとうございます!
しかし、私がいじったところがうまく動きません。
2重登録の防止のところなのですが、C列の社員番号にも適用しようと思い書き加えました。
しかし、ひっかかってくれません。
下のソースのどこがおかしいのでしょうか?
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
Dim B As Variant
If Me.社員登録ComboBox1 = "" Then
MsgBox "職務を入力してください。"
ElseIf Me.社員名TextBox1 = "" Then
MsgBox "社員名を入力してください。"
ElseIf Me.社員番号TextBox1 = "" Then
MsgBox "社員番号を入力してください。"
Else
With Worksheets("管理者入力画面")
A = Application.Match(Me.社員名TextBox1.Text, .Range("B:B"), 0)
B = Application.Match(Me.社員番号TextBox1.Text, .Range("C:C"), 0)
If Not IsError(A) Then
MsgBox "この人は登録済みです。"
Exit Sub
ElseIf Not IsError(B) Then
MsgBox "この社員番号は登録済みです。"
Exit Sub
End If
With .Range("A65536").End(xlUp)
.Offset(1, 0).Value = Me.社員登録ComboBox1.Text
.Offset(1, 1).Value = Me.社員名TextBox1.Text
.Offset(1, 2).Value = Me.社員番号TextBox1.Text
Set myR = .Offset(1, 19)
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
あともうひとつご質問があります。こうして作られたものを社員リストから社員を行ごと削除したい場合があります。
このとき、削除用のユーザーフォームを作り、社員番号を入れると、検索して名前が表示され、コマンドボタンで行ごと削除する、という方法はとれますでしょうか?
チェックボックスも一緒に消したいのですが。
|
|