質問内容が大きく変わったので修正です。
C列には都道府県名、I列にはURLが記入されています。
以下のコードは、
「C列に"東京"とあるがI列のURLには"tokyo"と含まれていない」
「I列のURLには"tokyo"と含まれているがC列に"東京"ではない」
ときにメッセージボックスを出すものです。
実行できているのはいいのですが、実は東京以外の都道府県もあります。
C列に大阪があればI列にはosakaが含まれていなければならない…という感じです。
このまま同じように書くと長すぎるのでどうにかして
短くまとめられないでしょうか?
Sheet2にURLと都道府県をまとめたリストはあります。
Private Sub Worksheet_Change(ByVal Target As Range) Dim i As Long For i = 6 To Worksheets("Sheet1").Range("C" & Cells.Rows.count).End(xlUp).Row If Worksheets("Sheet1").Range("C" & i).Value <> "東京" And InStr(Worksheets("Sheet1").Range("I" & i), "tokyo") > 0 Then MsgBox "※もう一度確認してください。" Exit Sub End If If Worksheets("Sheet1").Range("C" & i).Value = "東京" And Worksheets("Sheet1").Range("I" & i) = "" Then Exit Sub ElseIf Worksheets("Sheet1").Range("C" & i).Value = "東京" And InStr(Worksheets("Sheet1").Range("I" & i), "tokyo") = 0 Then MsgBox "もう一度確認してください。" Exit Sub End If
例えばsheet1に、C列の値が”東京”の行が複数あるとしたら、その行のI列のURLは
すべて同じURL(sheet2の”東京”の行に記載されているURL)であるべきで
それ以外をエラーとしたい、とのことでしょうか。
それとも、”http://tokyo001”、"http://tokyo002”のように、
URLの一部に”tokyo”が含まれている異なる文字列が記載されている、ということでしょうか?
それとも、sheet1のC列には同じ都道府県名は1回しか出てこなくて、URLは
sheet2のものと同一なのでしょうか?
>例えばsheet1に、C列の値が”東京”の行が複数あるとしたら、その行のI列のURLは すべて同じURL(sheet2の”東京”の行に記載されているURL)であるべきで それ以外をエラーとしたい、とのことでしょうか。
・
・
・
はい、その通りです。逆も然り、URLの一部にtokyoが含まれているにも関わらずその列のC列が「東京」ではない場合もエラーと表記させたいのです。加えてI列にはtokyo01やtokyo02のように一部に"tokyo"が含まれている異なる文字列が入っています。C列に都道府県が1回しか出ないというわけではありません。
回答1件
あなたの回答
tips
プレビュー