| 
    
     |  | ▼Jaka さん: >> 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
 
 ありがとうございました。
 全てうまくいきました。
 1日かけてご指導ありがとうございました。
 
 もうひとつ聞かせてください。
 
 If Target.Cells.Count <> 1 Then
 If Target.MergeCells = False Then
 Exit Sub
 End If
 End If
 の意味がよくわかりません。
 なぜ必要なのでしょうか?
 
 |  |