トップ > 汎用コード > 都道府県と市区町村を分割

  このエントリーをはてなブックマークに追加  

都道府県と市区町村を分割

住所データを、都道府県データとそれ以後のデータに分けるマクロです。
該当するデータを選択し、下のサンプルコードを実行すると、
一つ右のセルに都道府県、更にもう一つ右のセルにそれ以後のデータが取得されます。


区切り文字列を変更すると、他の分割したいデータにも応用可能です。

コードの貼り付け場所

サンプルコード

Sub Div_the_text()
    If TypeName(Selection) <> "Range" Then Exit Sub 'セルを選択していなければ終了
    If Selection.Areas(1).Columns.Count <> 1 Then Exit Sub '選択セル範囲が2列以上だと終了

    Dim varArray As Variant, varArea As Variant, rngArea As Range
    Dim i As Long, n As Long, v As Variant
    
    varArray = Array("府", "県", "都", "道") '区切り文字列
    
    Set rngArea = Intersect(Selection.Areas(1), ActiveSheet.UsedRange).Resize(, 3)
    varArea = rngArea
    For i = 1 To UBound(varArea)
        For Each v In varArray
            n = InStr(1, CStr(varArea(i, 1)), CStr(v)) '区切り文字列の位置を検索
            If 0 < n Then
                varArea(i, 2) = Left$(CStr(varArea(i, 1)), n)
                varArea(i, 3) = Mid$(CStr(varArea(i, 1)), n + 1)
                Exit For
            End If
        Next
    Next
    rngArea = varArea
    Set rngArea = Nothing
End Sub

・選択セル範囲が2列以上だとマクロは実行されません
・区切り文字列を変更すると、他の分割したいデータにも応用可能です

ページトップへ戻る

Excel 汎用コード

Word 汎用コード

Copyright(C) 2009- 坂江 保 All Rights Reserved.