|
これはたぶん、前回の質問と関連しているのでしょうね。
ならば既に Sheet1 の X23 以下へ人名を入力したときのイベントマクロを
シートモジュールに入れてるはずだから、それを↓のように改造して下さい。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Flg As Boolean
Dim Mnm As String, Rnm As String
Dim Sh As Worksheet
If Intersect(Target, Range("X23:X65536")) Is _
Nothing Then Exit Sub
With Target
If .Count > 1 Then
Flg = True: GoTo ELine
End If
If IsEmpty(.Value) Then Exit Sub
If IsNumeric(.Value) Then
Flg = True: GoTo ELine
End If
If .Value = "監督人" Then Exit Sub
Mnm = .Value
End With
If Left$(Mnm, 2) = "佐藤" Then
Select Case Right(Mnm, 1)
Case 1: Rnm = "太郎"
Case 2: Rnm = "次郎"
Case 3: Rnm = "三郎"
End Select
Mnm = "佐藤" & Rnm
End If
Set Sh = Worksheets("Sheet2")
With Application
If Not IsError(.Match(Mnm, Sh.Range("E:E"), 0)) Then
MsgBox "その名前は入力済みです", 48
Flg = True: GoTo ELine
End If
Sh.Range("E65536").End(xlUp).Offset(1).Value = Mnm
ELine:
.EnableEvents = False
If Flg Then
Target.Clearcontents
Else
If Rnm <> "" Then Target.Value = Mnm
End If
.EnableEvents = True
End With
Set Sh = Nothing
End Sub
>佐藤タや佐藤ジで入力
ではなく、数値の1,2,3・・を付けて下さい。その方が単純なので、入力ミスを
防ぎやすいと思うからです。
|
|