|
下のような表を作っています。
J列に"東京地区の結果→K列、R列、Y列の総合結果列(数式)
K列に"結果"→M〜Q列での結果が入る列(数式)
L列に"日付"
M〜Q列に"確認項目"
R列に"結果"→T〜X列での結果が入る列(数式)
S列に"日付"
T〜X列に"確認項目"
Y列に"結果"→M〜Q列での結果が入る列(数式)
Z列に"日付"
AA〜AE列に"確認項目"
AF列に"大阪地区の結果"→K列、R列、Y列の総合結果列(数式)
AG列に"結果"→AI〜AM列での結果が入る列(数式)
AH列に"日付"
AI〜AM列に"確認項目"
AN列に"結果"→AP〜AT列での結果が入る列(数式)
AO列に"日付"
AP〜AT列に"確認項目"
AU列に"結果"→M〜Q列での結果が入る列(数式)
AV列に"日付"
AW〜BA列に"確認項目"
BB〜BC列に"備考1"、"備考2"がそれぞれ入っています
知り合いに"結果"列に入力がなされたときに、"日付"列に自動的に日付が入るようにVBAで作成してもらいました。
∵・∴・∵・∴・∵・∴・∵・∴∵・∴・∵・∴・∵・∴・∵・∴∵・∴・∵・∴・∵・∴・∵・∴
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Tr As Long
Dim Tc As Long
Dim Hc As Long
If Target.Cells.Count > 1 Then Exit Sub
Application.EnableEvents = False
Tr = Target.Row
Tc = Target.Column
If Tr >= 5 Then
Select Case Tc
Case Is < 11
Case Is <= 17
Hc = 11
DateIn Tr, Hc
Case Is <= 24
Hc = 18
DateIn Tr, Hc
Case Is <= 31
Hc = 25
DateIn Tr, Hc
Case Is <= 39
Hc = 33
DateIn Tr, Hc
Case Is <= 46
Hc = 40
DateIn Tr, Hc
Case Is <= 53
Hc = 47
DateIn Tr, Hc
End Select
End If
Set Target = Nothing
Application.EnableEvents = True
End Sub
-----------------------------------------------------------
Sub DateIn(ByRef Tr As Long, Hc As Long)
If Cells(Tr, Hc).Value <> "" Then
Cells(Tr, Hc + 1).Value = Format(Date, "yyyy/mm/dd")
Else
Cells(Tr, Hc + 1).Value = ""
End If
End Sub
∵・∴・∵・∴・∵・∴・∵・∴∵・∴・∵・∴・∵・∴・∵・∴∵・∴・∵・∴・∵・∴・∵・∴
このコードだと表の仕組みが変わったときに使えなくなってしまうんです・・・
直接列を手入力で指定してるからですよね?
"結果"と"日付"の位置関係は変わることはないので、"結果"という文字列を検索して、同じ処理って出来ないでしょうか?
|
|