[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『複数の指定範囲の入力セルに自動的に数値を加算して表示』(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
たとえば、これは何をしているのかわかりますか?
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.