自分用です。
タイトル通りです。
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