|
> 1.入力後OKの場合 MsgBox "OK"を出さずに次の入力にいく方法。
MsgBox "OK" を消すか、頭に'をつけてコメントにすれば良いです。
> 2.入力セルの変更設定の方法ですが
> ご指導の
> If Target.Cells(1).Column = 1 And Target.Row <= 5 Then
> の意味は1列の1〜5行と思いますが
> 入力セルが飛び飛びの場合
> A1〜5
> D3〜8
> F5〜6
> などの場合どのように考えたら良いでしょうか。
下記参照。(不具合があるかも)
出来るなら結合セルはやめた方が良いです。
マクロとの愛称が悪いので、面倒なコードが必要になってきます。
> 3.Private Sub の意味は
> このシートだけこのマクロが有効と考えてよいのでしょうか?
??厳密には意味は違います。
書き込んだシートモジュールのイベントですから、書き込んだシートにしか使えません。
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Cells.Count <> 1 Then
If Target.MergeCells = False Then
Exit Sub
End If
End If
If Target.Cells(1).Column = 1 And Target.Row <= 5 Or _
Target.Cells(1).Column = 4 And Target.Row >= 3 And Target.Row <= 8 Or _
Target.Cells(1).Column = 6 And Target.Row >= 5 And Target.Row <= 6 Then
If Target.Cells(1).Value >= "1" And Target.Cells(1).Value <= "4" _
Or Target.Cells(1) = "" Then
'MsgBox "OK"
Else
MsgBox "NG"
Application.EnableEvents = False
Application.Undo
Application.EnableEvents = True
End If
End If
End Sub
|
|