自分用です。
タイトル通りです。

E列2~48セルに都道府県名が入っていて、その表を読み込みます。
都道府県表と付き合わせて、A列の住所の最初を見て、B列に都道府県を記入します。

Sub test()

    Dim 作業シート As Worksheet
    Set 作業シート = ThisWorkbook.Worksheets("Sheet1")
    
    Dim 都道府県配列 As Variant
    都道府県配列 = 作業シート.Range("E2:E48").Value  ' E2:E48の範囲を取得
    
    Dim 都道府県表 As Object
    Set 都道府県表 = CreateObject("Scripting.Dictionary")
    
    Dim 行番号 As Long
    Dim 県名 As String
    
    ' 行番号 = 1 から 47 の範囲でループ
    For 行番号 = 1 To UBound(都道府県配列, 1)
        県名 = 都道府県配列(行番号, 1)  ' 配列は1列なので、(行番号, 1)でアクセス
        If 県名 <> "" Then
            都道府県表(県名) = 県名  ' 表に追加
        End If
    Next 行番号
    
'    A列の最終行を取得
    Dim 最終行 As Long: 最終行 = 作業シート.Cells(作業シート.Rows.Count, "A").End(xlUp).Row

    ' A列を上から順にチェック
    For 行番号 = 1 To 最終行
    
        Dim 住所文字列 As String: 住所文字列 = 作業シート.Cells(行番号, "A").Value
        Dim 都道府県名 As Variant
        
        For Each 都道府県名 In 都道府県表.Keys
            If 住所文字列 Like 都道府県名 & "*" Then
                作業シート.Cells(行番号, "B").Value = 都道府県表(都道府県名)
                Exit For
            End If
        Next 都道府県名
        
    Next 行番号
End Sub

 

おすすめの記事