会社で導入しようとしている基幹システムの住所登録が住所を番地以下とそれ以外で分ける仕様になっていた。運送会社のデータベースから住所録をcsvで抜き出したらあたりまえだけどそんな風にはなっていない。ということで住所の文字列の中の数字を見つけて、そこで分けるマクロを作成。
しかし番地が漢数字で入っているものは手作業ポチポチ。。
VBAはPythonみたいに文字列を配列として扱えないのだろうか。ちょっと調べた限りではできないっぽかったので思いついたやりかたで。コードはこちらです。
Option Explicit
Sub divideAddress()
Dim address, letter, length, address1, address2 As String
Dim ini, last As Integer
Dim i, j As Integer
ini = 2
last = Cells(Rows.Count, 1).End(xlUp).Row
For i = ini To last
address = Cells(i, 4).Value
length = Len(address)
For j = 1 To length
letter = Mid(address, j, 1)
If IsNumeric(letter) Then
Exit For
End If
address1 = address1 + letter
Next
For j = j To length
letter = Mid(address, j, 1)
address2 = address2 + letter
Next
Cells(i, 5).Value = address1
Cells(i, 6).Value = address2
address1 = ""
address2 = ""
Next
End Sub