[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『複数の指定範囲の入力セルに自動的に数値を加算して表示』(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.