|
▼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
の意味がよくわかりません。
なぜ必要なのでしょうか?
|
|