ここから本文です

現行のマクロ記述に、今一つ条件を付け加えてください。

vuf********さん

2018/10/3007:10:56

現行のマクロ記述に、今一つ条件を付け加えてください。

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Row < 12151 Or Target.Column <> 3 Then Exit Sub
If Cells(Target.Row, "K") = 1 Then Exit Sub
tbl = Worksheets("Sheet5").Range("A1", Worksheets("Sheet5").Cells(Rows.Count, "B").End(xlUp))
txt = Target.Value
For r = 1 To UBound(tbl, 1)
txt = Replace(txt, tbl(r, 1), tbl(r, 2))
Next
Application.EnableEvents = False
Target.Value = txt
Application.EnableEvents = True
End Sub

tbl = Worksheets("Sheet5").Range("A1", Worksheets("Sheet5").Cells←ここの一列の処なんですが、Range="A1"の検査値を完全一致に対応できるように変更をお願いします。
例)現行では検査値「2000年」→「平成12年」に置き換えられますが、部分一致で「2000年代」→「平成12年」でも置き換えられてしまっています。
このマクロの記述を生かしたいので、結果は同じでも記述のパターンはいくつかあると思われますが、まったく別のコード進行に組み替えないで追加記述行を加えるだけがいいです。というのは他のマクロで予期せぬ動きが発生してしまう可能性があります。

Sheet5&amp;quot,A1&amp;quot,Target.Value,Worksheets,1 Then Exit Sub

閲覧数:
17
回答数:
1
お礼:
500枚

違反報告

ベストアンサーに選ばれた回答

hel********さん

2018/10/3007:39:01

For r = 1 To UBound(tbl, 1)
txt = Replace(txt, tbl(r, 1), tbl(r, 2))
Next



For r = 1 To UBound(tbl, 1)
If txt = tbl(r,1) Then
txt = Replace(txt, tbl(r, 1), tbl(r, 2))
Exit For
End If
Next

質問した人からのコメント

2018/10/30 08:07:13

動作OKです。
どうもありがとうございました。

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる