| 
    
     |  | > 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
 
 |  |