|
▼INA さん:
>うごきますよ?
>
>Change2 になっているからでは?
なぜか、Private Sub Worksheet_Change(ByVal Target As Range)
Dim C As Range
を連続して書くと、エラーが発生してしまいます。
↓のように、書くと・・・・「worksheet_change」の名前が適切ではありません。っとでます。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim C As Range
'列Eのみ対象
If Target.Column <> 5 Then Exit Sub
Application.EnableEvents = False 'イベント発生停止
'文字数
If Len(Target.Value) <> 3 Then
MsgBox "3文字入力して下さい。"
GoTo 終了
End If
For Each C In Target
C.Value = StrConv(C.Value, 9)
Next
Application.EnableEvents = True
Exit Sub
終了:
Target.Value = ""
Target.Select
Application.EnableEvents = True
End Sub
'2
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Long
'列Dのみ対象
If Target.Column <> 4 Then Exit Sub
Application.EnableEvents = False 'イベント発生停止
'文字数
If Len(Target.Value) <> 6 Then
MsgBox "6文字入力して下さい。"
GoTo 終了
End If
'文字列で入力'
Target.NumberFormatLocal = "@"
With Selection
.HorizontalAlignment = xlRight
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.ShrinkToFit = False
.MergeCells = False
End With
'1文字ずつASCIコードでチェック
For i = 1 To 6
If Asc(Mid(Target.Value, i, 1)) >= 48 And _
Asc(Mid(Target.Value, i, 1)) <= 57 Then
Else
MsgBox "0〜9 以外の文字が入力されています。"
GoTo 終了
End If
Next i
Application.EnableEvents = True
Exit Sub
終了:
Target.Value = ""
Target.Select
Application.EnableEvents = True
End Sub
|
|