内容を置き換えるPeplace関数
あるセルと他のセルの内容を比較しようとしたときに、セルの内容が微妙に違うせいで比較できないことがあります。
私はこの前、二つの表に書いてある店舗一覧を住所の情報を用いてVlookup関数で一つの表になるように加工していたのですが、住所の書き方が微妙に違っていて、情報を抜き出すのに苦労しました。
住所のハイフンが色々使われていて、データが一致している情報が探せなかったのが原因です。
同じ住所でもデータを作成した人によって色々な書き方があります。
空白が入っていたり、半角だったり、全角だったり、ひかれているハイフンがハイフンでなく横線だったりすると、それだけでVlookupでは探せなくなります。またハイフンではなく、「丁目」「番地」と記載されている場合もあります。
色々な形式で記載されている住所を、一括である決まった形式に置き換えるときに便利な関数がReplace関数です。
今回はVBAでのReplace関数の使い方について紹介します。
VBAでのReplace関数の使い方
VBAでのReplace関数の基本的な使い方は以下のようになります。
例としてA1セルの文字列のうち”―”を”-“に変更するには以下のように記載します。
スポンサーリンク
私が作成したVBAコード
Replace関数をもとにして私が住所一覧表を修正するのに作ったVBAコードは以下のようになります。
Dim i As Long
i = 2
Do Until Cells(i, 1) = “”
Cells(i, 1) = Replace(Cells(i, 1), “―”, “-“) ’全角「―」を半角「-」に変換する
Cells(i, 1) = Replace(Cells(i, 1), “-”, “-“) ’全角のマイナス「-」を「-」に変換する
Cells(i, 1) = Replace(Cells(i, 1), “ー”, “-“) ’「ー」を「-」に変換する
Cells(i, 1) = Replace(Cells(i, 1), “丁目”, “-“) ’「丁目」を「-」に変換する
Cells(i, 1) = Replace(Cells(i, 1), “番地”, “-“) ’「番地」を「-」に変換する
Cells(i, 1) = Replace(Cells(i, 1), ” “, “”) ’半角の空白を削除する
Cells(i, 1) = Replace(Cells(i, 1), “ ”, “”) ’全角の空白を削除する
i = i + 1
Loop
End Sub
これで同じ書式で表されるようになり住所の突合せでの確認ができるようになりました。
他に数字やアルファベットの半角、全角を変更する関数が必要な場合もあります。
Excelのワークシート上で使用するREPLACE関数とは異なる
Excelのワークシート上で使用するワークシート関数でもREPLACE関数はありますが、VBAで使用するReplace関数とは引数の設定が異なります。
Excelのワークシート関数の中のREPLACE関数は以下のように引数を設定します。
VBAの関数とは異なり、開始位置と文字数を設定して置換する方法になります。よって今回のような文字数がばらばらの住所一覧からハイフンの形をそろえたりはできず、少し使い勝手が悪い気がします。
おすすめ書籍 (広告)
Amazon 楽天 Yahoo検索 |
---|
Amazon 価格:¥2,420円 |
楽天Kobo電子書籍ストア 価格:2,574円 |
楽天Kobo電子書籍ストア 価格:2,574円 |
bookfanプレミアム 価格:2,420円 |
bookfanプレミアム 価格:2,200円 |
コメント