[[20180517224045]] 『複数の指定範囲の入力セルに自動的に数値を加算し』(ftr) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『複数の指定範囲の入力セルに自動的に数値を加算して表示』(ftr)

以前に下記の質問をしました。

 指定範囲のセルA1とA2とA3とA4に数値を入力し、そのセルに自動で17を加算して表示。 
 指定範囲のセルA8とA9とA10に数値を入力し、そのセルに自動で17を加算して表示。 
 指定範囲のセルA14とA15とA16とA17とA18とA19A20に数値を入力し、そのセルに自動で3を加算して表示。 
 (入力されていた数値をクリアした場合は空白表示。) 

その回答として次の回答を頂き、使用しており対応できておりました。

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)

    Dim r As Range
    Dim c As Range
Set r = Intersect(Target, Range("A1:A4,A8:A10,A14:A20"))
If r Is Nothing Then Exit Sub
Application.EnableEvents = False
For Each c In r
        If c.Value <> "" Then
            If c.Row < 11 Then
               c.Value = Val(c.Value) + 17
            Else
               c.Value = Val(c.Value) + 3
            End If
        End If
     Next
Application.EnableEvents = True
End Sub

その後加算する対象が3か所以上になる場合が必要となり、その方法を教えて頂きたく質問致しました。

< 使用 Excel:Excel2007、使用 OS:Windows10 >


 条件が追加になったのですね
ご質問は一つにまとめられた方がいいですよ

 Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim r As Range
Dim c As Range
Set r = Intersect(Target, Range("A1:A4,A8:A10,A14:A20"))
If r Is Nothing Then Exit Sub
Application.EnableEvents = False
    For Each c In r
        If c.Value <> "" Then
            Select Case c.Row
                Case Is <= 4
                    c.Value = Val(c.Value) + 17
                Case 8 To 10
                    c.Value = Val(c.Value) + 10
                Case Else
                    c.Value = Val(c.Value) + 3
            End Select
'            If c.Row < 11 Then
'                c.Value = Val(c.Value) + 17
'            Else
'                c.Value = Val(c.Value) + 3
'            End If
        End If
    Next
Application.EnableEvents = True
End Sub

(SoulMan) 2018/05/17(木) 22:55


 以下の続き
[[20180517211334]]
(SoulMan) 2018/05/17(木) 23:01

ありがとうございます。
希望の入力と表示が出来ました。

追加質問で申し訳ありませんが、後から記述されている+17と+3はどの様な意味を持つのでしょうか。
(ftr) 2018/05/17(木) 23:46


 えっ?
条件は正直よく見ていませんが、
トピ主さんのコードに条件を足しただけですよ?
+17とか+3とか
お好みでどうぞ(笑)
もう寝ますね
おやすみなさい💤😴
(SoulMan) 2018/05/17(木) 23:54

 あっ、コメントのことですか?
要らないなら消して下さい
紛らわしくてごめんなさい
(SoulMan) 2018/05/17(木) 23:56

横から口出しですが、ftrさんは、提示された元のコードをどの程度理解できてますか?

たとえば、これは何をしているのかわかりますか?
Set r = Intersect(Target, Range("A1:A4,A8:A10,A14:A20"))

また、こちらはどうでしょうか
For Each c In r

もし、わからないのであれば説明が変わってくるので確認だけ。
(もこな2) 2018/05/18(金) 00:08


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.