【VBA】文字列の場所入れ替え
こちらの識者の方々にはいつもお世話になっています。
VBAの質問です。
環境は下記になります。
OS=windowsXP SP3
Office=Excel2003(11.8347.8403) SP3
A列に住所のデータがあるのですが、形式がちょっと特殊で、
A1 千代田区千代田1-1-1-301千代田マンション1号棟
A2 千代田区千代田2-3-4
というな形になっています。(A1,A2はセル番地表示で、その文字列がセルにあるわけではありません)
並び順が、市名(区名)・町名・丁目・番地・号地・部屋番号・物件名となっています。
データの定義は、丁目・番地・号地・部屋番号については半角数字・市名(区名)・町名・物件名は数字やアルファベットを含むものであっても全角であることは担保されております。
戸建てであればいいのですが、集合住宅の場合、物件名と部屋番号が入れ替わってしまっています。
これを、できればA列には住所、B列には物件名・(全角スペース)・部屋番号とわけたいのです。
A B
1 千代田区千代田1-1-1 千代田マンション1号棟 301
2 千代田区千代田2-3-4
1.最後の文字列が全角か半角かで処理を分岐、(半角ならスルー、全角なら2.以降に)
2.セル内の最後の半角文字の次の文字から最後の文字までを抜き出す
3.最後のハイフン(-)の次の文字から全角文字の前の文字までを抜き出す
4.2と3で抜き出した文字列を合体
という流れでやろうと思い、まずは1のコードを、StrConv(Right(Range("A1"),1), vbNarrow) で検査してみたのですが、vbNarrowは半角に変換できる文字列のみ対応しているようで、漢字のものはスルーされてしまい、検査段階で既に頓挫しています。
上記のような場合、どのようなコードが適していますでしょうか。
質問に不備不足等ございましたらご指摘ください。
ご面倒お掛けしますがよろしくお願いします。
お礼
ありがとうございます。 できました。