|
県名からエリアを記載するコードを見よう見まねで下記の通り書きました
一応の目的は達成できたかに見えたのですが
セル内に「東京都」の場合のみエリアを出すようにしたかったのですが
「あ東京都あ」と記載されているセルにも対象となってしまいました
根本的に間違っているような気がしますがどう直せばよいのかわかりません
御助力をお願い致します。
Sub 正規表現置換()
Dim RE, strPattern, strPattern2, strPattern3, strPattern4, _
strPattern5, strPattern6, strPattern7, strPattern8, strPattern9 As String
Dim r As Range, LP As Long
Rows(2).Clear
Set RE = CreateObject("VBScript.RegExp")
strPattern = "(北海道)"
With RE
.Pattern = strPattern ''検索パターンを設定
.IgnoreCase = True ''大文字と小文字を区別しない
.Global = True ''文字列全体を検索
For LP = 1 To 50
If .Test(Cells(1, LP).Formula) Then Cells(2, LP) = "北海道地方"
Next LP
End With
strPattern2 = "(茨城県|栃木県|群馬県|埼玉県|千葉県|東京都|神奈川県)"
With RE
.Pattern = strPattern2 ''検索パターンを設定
.IgnoreCase = True ''大文字と小文字を区別しない
.Global = True ''文字列全体を検索
For LP = 1 To 50
If .Test(Cells(1, LP).Formula) Then Cells(2, LP) = "関東"
Next LP
End With
strPattern3 = "(新潟県|富山県|石川県|福井県)"
With RE
.Pattern = strPattern3 ''検索パターンを設定
.IgnoreCase = True ''大文字と小文字を区別しない
.Global = True ''文字列全体を検索
For LP = 1 To 50
If .Test(Cells(1, LP).Formula) Then Cells(2, LP) = "北陸"
Next LP
End With
strPattern4 = "(山梨県|長野県|岐阜県|静岡県|愛知県)"
With RE
.Pattern = strPattern4 ''検索パターンを設定
.IgnoreCase = True ''大文字と小文字を区別しない
.Global = True ''文字列全体を検索
For LP = 1 To 50
If .Test(Cells(1, LP).Formula) Then Cells(2, LP) = "中部"
Next LP
End With
strPattern5 = "(三重県|滋賀県|京都府|大阪府|兵庫県|奈良県|和歌山県)"
With RE
.Pattern = strPattern5 ''検索パターンを設定
.IgnoreCase = True ''大文字と小文字を区別しない
.Global = True ''文字列全体を検索
For LP = 1 To 50
If .Test(Cells(1, LP).Formula) Then Cells(2, LP) = "近畿"
Next LP
End With
strPattern6 = "(鳥取県|島根県|岡山県|広島県|山口県|徳島県|香川県|愛媛県|高知県)"
With RE
.Pattern = strPattern6 ''検索パターンを設定
.IgnoreCase = True ''大文字と小文字を区別しない
.Global = True ''文字列全体を検索
For LP = 1 To 50
If .Test(Cells(1, LP).Formula) Then Cells(2, LP) = "中国/四国"
Next LP
End With
strPattern7 = "(福岡県|佐賀県|長崎県|熊本県|大分県|宮崎県|鹿児島県)"
With RE
.Pattern = strPattern7 ''検索パターンを設定
.IgnoreCase = True ''大文字と小文字を区別しない
.Global = True ''文字列全体を検索
For LP = 1 To 50
If .Test(Cells(1, LP).Formula) Then Cells(2, LP) = "九州"
Next LP
End With
strPattern8 = "(沖縄県)"
With RE
.Pattern = strPattern8 ''検索パターンを設定
.IgnoreCase = True ''大文字と小文字を区別しない
.Global = True ''文字列全体を検索
For LP = 1 To 50
If .Test(Cells(1, LP).Formula) Then Cells(2, LP) = "沖縄"
Next LP
End With
strPattern9 = "(不明|青森県|岩手県|宮城県|秋田県|山形県|福島県)"
With RE
.Pattern = strPattern9 ''検索パターンを設定
.IgnoreCase = True ''大文字と小文字を区別しない
.Global = True ''文字列全体を検索
For LP = 1 To 50
If .Test(Cells(1, LP).Formula) Then Cells(2, LP) = "その他"
Next LP
End With
Set RE = Nothing
End Sub
|
|