同一セル内の文字を入れ替える
住所データを英語から日本語にしなければならないのでVBAで作ってみました。
英語住所だと1-1-1 OtemachiみたいになるのをOtemachi 1-1-1に入れ替える為のVBAです。
Sub Irekae() Dim a As Long Dim RanA As Range Dim chkA As String Dim chkB As String Dim chkL As String Dim chkR As String Dim Aflag As Boolean For Each RanA In Range("K2:K6000") chkA = RanA.Cells.Value 'Cell内がブランクでなければ作業開始 If chkA <> "" Then Aflag = False '文字列確認−結合作業開始(128文字まで) For a = 1 To 128 Step 1 chkB = Mid(chkA, a, 1) '終端になったときの処理 If chkB = "" Then Exit For End If '全角文字に遭遇した場合の処理 If Asc(chkB) <= -1 Then If a = 1 Then Exit For End If If a >= 2 Then chkR = Left(chkA, a - 1) chkL = Mid(RanA.Cells.Value, a) RanA.Cells.Value = chkL & Chr(32) & chkR Aflag = False Exit For End If End If 'Fの後にスペースがきた場合の処理(フロア数の表示対応) If Aflag = True And Asc(chkB) = 32 Then chkR = Left(chkA, a) chkL = Mid(RanA.Cells.Value, a) RanA.Cells.Value = chkL & Chr(32) & chkR Aflag = False Exit For End If '半角英がきた場合の処理(終了作業) If Asc(chkB) >= 58 Then If Asc(chkB) = 70 And Aflag = False Then Aflag = True End If If a = 1 Then Exit For End If If a >= 2 Then chkR = Left(chkA, a) chkL = Mid(RanA.Cells.Value, a) RanA.Cells.Value = chkL & Chr(32) & chkR Aflag = False Exit For End If End If Next a End If Next End Sub
なんかわかりにくいけど応用効きそうなのでメモメモ