質問編集履歴

4

題名

2016/08/27 09:30

投稿

dokoniarukana
dokoniarukana

スコア31

test CHANGED
@@ -1 +1 @@
1
- [VBA]マクロをコンパクトに
1
+ [VBA]マクロをコンパクトに短くまとめたい
test CHANGED
File without changes

3

編集

2016/08/27 09:30

投稿

dokoniarukana
dokoniarukana

スコア31

test CHANGED
@@ -1 +1 @@
1
- [VBA]特定文字がセルに含まれていなかったらメッセージを出すマクロの短縮
1
+ [VBA]マクロをコンパクトに
test CHANGED
File without changes

2

変更

2016/08/27 09:11

投稿

dokoniarukana
dokoniarukana

スコア31

test CHANGED
File without changes
test CHANGED
@@ -48,7 +48,7 @@
48
48
 
49
49
 
50
50
 
51
- If Worksheets("Sheet1").Range("C" & i).Value = "横浜Y" And Worksheets("Sheet1").Range("I" & i) = "" Then
51
+ If Worksheets("Sheet1").Range("C" & i).Value = "東京" And Worksheets("Sheet1").Range("I" & i) = "" Then
52
52
 
53
53
  Exit Sub
54
54
 

1

質問内容変更

2016/08/27 09:10

投稿

dokoniarukana
dokoniarukana

スコア31

test CHANGED
@@ -1 +1 @@
1
- [VBA]特定文字がセルに含まれていなかったらメッセージを出す
1
+ [VBA]特定文字がセルに含まれていなかったらメッセージを出すマクロの短縮
test CHANGED
@@ -1,37 +1,65 @@
1
- 初心者です。
1
+ 質問内容が大きく変わったの修正です。
2
2
 
3
- エクセルで表を作っているのですが、
3
+
4
4
 
5
5
  C列には都道府県名、I列にはURLが記入されています。
6
6
 
7
+ 以下のコードは、
7
8
 
9
+ 「C列に"東京"とあるがI列のURLには"tokyo"と含まれていない」
8
10
 
9
- URLの文字列tokyo」が含まれておらず、C列に東京 と記入した場合に
11
+ 「I列のURLには"tokyo"と含まれているがC列に"東京"ではない」
10
12
 
11
- 確認のメッセージボックスを表示させたいのです。
13
+ ときにメッセージボックスを出すものです。
12
14
 
13
15
 
14
16
 
15
- が、下記コードではうくいきませんでした
17
+ 実行できているのはいいのですが、実は東京以外都道府県もあり
16
18
 
17
- エラーも吐いていないですし何が原因なのでしょうか?
19
+ C列に大阪があればI列にはosakaが含まれていなければならな…という感じです
18
20
 
19
21
 
22
+
23
+ このまま同じように書くと長すぎるのでどうにかして
24
+
25
+ 短くまとめられないでしょうか?
26
+
27
+ Sheet2にURLと都道府県をまとめたリストはあります。
20
28
 
21
29
 
22
30
 
23
31
  ```ここに言語を入力
24
32
 
25
- Private Sub Worksheet_SelectionChange(ByVal Target As Range)
33
+ Private Sub Worksheet_Change(ByVal Target As Range)
26
34
 
27
- If Intersect(Target, Range("C")) Is Nothing Then Exit Sub
35
+ Dim i As Long
28
36
 
29
- If InStr(Range("I"), "tokyo") = 0 And
30
-
31
- Range("C").Value = "東京" Then MsgBox "※もう一度確認してください。"
37
+ For i = 6 To Worksheets("Sheet1").Range("C" & Cells.Rows.count).End(xlUp).Row
32
-
33
- End Sub
34
38
 
35
39
 
36
40
 
41
+ If Worksheets("Sheet1").Range("C" & i).Value <> "東京" And InStr(Worksheets("Sheet1").Range("I" & i), "tokyo") > 0 Then
42
+
43
+ MsgBox "※もう一度確認してください。"
44
+
45
+ Exit Sub
46
+
47
+ End If
48
+
49
+
50
+
51
+ If Worksheets("Sheet1").Range("C" & i).Value = "横浜Y" And Worksheets("Sheet1").Range("I" & i) = "" Then
52
+
53
+ Exit Sub
54
+
55
+
56
+
57
+ ElseIf Worksheets("Sheet1").Range("C" & i).Value = "東京" And InStr(Worksheets("Sheet1").Range("I" & i), "tokyo") = 0 Then
58
+
59
+ MsgBox "もう一度確認してください。"
60
+
61
+ Exit Sub
62
+
63
+ End If
64
+
37
65
  ```