| 
    
     |  | >If Target.Cells.Count <> 1 Then >  If Target.MergeCells = False Then
 >   Exit Sub
 >  End If
 >End If
 >の意味がよくわかりません。
 >なぜ必要なのでしょうか?
 必要なのでしょうか?ってA1:A3までセル結合してあるって事ですから...。
 新規シートに下記コードを書いて、
 
 Private Sub Worksheet_Change(ByVal Target As Excel.Range)
 MsgBox Target.Value
 End Sub
 
 結合セルに何か入力してください。
 エラーになります。
 
 また、セルを複数選択して同時入力させて見てください。
 エラーになります。
 
 ※同時入力
 例えば、複数のセルを選択後に「1」入力後、Ctrl + Ent で同時入力できます。
 
 それで、結合セルは、複数セル選択と同じ扱いになるみたいでしたので、複数セルの同時入力は全て拒否するけど結合セルは、判定させるようにしました。
 
 厳密に言うと、もっと単純でよかったのかもしれませんが、後で操作性の悪さに気づいて、これこれこうしたいですと、細かく追加されるのも嫌なので、独断でこれぐらいはあった方が良いかも程度に追加しました。
 
 操作方法の詳細が解りませんけど、更に細かい使い方に対応させようとすると、もっとコードが更に複雑になります。
 
 因みに複数同時入力が出来ないように作ってはありますが、複数のセルを選択したとき入力セルが左、もしくは上にないと反応しません。
 結合セルが入力セルであるためにこうなってしまったんですが....。
 
 チビッと修正?版
 
 Private Sub Worksheet_Change(ByVal Target As Range)
 'MsgBox Target.Areas.Count
 If Target.Column = 1 And Target.Row <= 5 Or _
 Target.Column = 4 And Target.Row >= 3 And Target.Row <= 8 Or _
 Target.Column = 6 And Target.Row >= 5 And Target.Row <= 6 Then
 If Not (Target.Count > 1 And Target.MergeCells = False Or Target.Areas.Count > 1) Then
 If Val(Target.Cells(1).Value) >= 1 And Val(Target.Cells(1).Value) <= 4 Or _
 Target.Cells(1).Value = "" Then
 Exit Sub
 End If
 End If
 MsgBox "NG"
 Application.EnableEvents = False
 Application.Undo
 Application.EnableEvents = True
 End If
 End Sub
 
 
 |  |