| 
    
     |  | ▼Jaka さん: >>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
 
 なるほどです。!!
 ご親切に指導していただきありがとうございました。
 
 
 |  |