Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


30229 / 76732 ←次へ | 前へ→

【51770】Re:住所を分けたい
発言  ハチ  - 07/10/4(木) 10:06 -

引用なし
パスワード
   ▼ハチ さん:
>▼りんご さん:
>>▼ハチ さん:
>>すいません、番地以降を取り出したいのですが、どこを参考にすれば?
>
>質問を勘違いしてました。
>「番地付きの住所」 と 「その他」
>に分けたいということですね。

このデータで100%の精度を求めることは無理があると思います。
すべての住所情報(番地まで)を網羅した
データベースがあるならできるかもしれませんけど・・

最後の文字からチェックしていくほうが、多少マシかなと思い、
なんとなく考えてみました。

なんとなくなので、バグがあるかもしれません。

Option Explicit

Sub Test()
  Dim Str As String
  
  Str = "札幌市南区○○町1-1-1札幌アパート101"
  MsgBox Mid(Str, func_Spt_Len(Str))
  
  Str = "札幌市南区○○町1番地1-10札幌マンション1012"
  MsgBox Mid(Str, func_Spt_Len(Str))
  
  Str = "札幌市南区○○町1-1-1"
  MsgBox Mid(Str, func_Spt_Len(Str))
  
End Sub

Private Function func_Spt_Len(ByVal Str As String) As Long
  Dim i As Long
  Dim j As Long
  Dim all_len As Long
  Dim buf As Variant
  
  all_len = Len(Str)
  '最後から←に2文字づつチェックして -x の位置
  For i = all_len - 1 To 1 Step -1
    buf = Mid(Str, i, 2)
    If buf Like "-?" Then
      Exit For
    End If
  Next
  j = i + 1  ' - の分 +1
  '数値ではなくなるまで→に移動
  For i = j To all_len
    buf = Mid(Str, i, 1)
    If IsNumeric(buf) = False Then
      Exit For
    End If
  Next
  
  func_Spt_Len = i

End Function

0 hits

【51750】住所を分けたい りんご 07/10/3(水) 15:26 質問
【51751】Re:住所を分けたい ひげくま 07/10/3(水) 16:24 発言
【51752】Re:住所を分けたい りんご 07/10/3(水) 16:48 質問
【51754】Re:住所を分けたい ハチ 07/10/3(水) 17:22 発言
【51755】Re:住所を分けたい りんご 07/10/3(水) 18:15 質問
【51756】Re:住所を分けたい ハチ 07/10/3(水) 18:31 発言
【51770】Re:住所を分けたい ハチ 07/10/4(木) 10:06 発言
【51823】Re:住所を分けたい りんご 07/10/6(土) 14:43 質問
【51824】Re:住所を分けたい G-Luck 07/10/6(土) 15:13 回答
【51825】Re:住所を分けたい りんご 07/10/6(土) 16:17 質問
【51826】Re:住所を分けたい G-Luck 07/10/6(土) 16:25 発言
【51827】Re:住所を分けたい じゅんじゅん 07/10/6(土) 16:40 発言
【51830】Re:住所を分けたい りんご 07/10/6(土) 17:22 質問
【51831】Re:住所を分けたい じゅんじゅん 07/10/6(土) 17:58 発言
【51832】Re:住所を分けたい じゅんじゅん 07/10/6(土) 18:05 発言
【51904】Re:住所を分けたい りんご 07/10/10(水) 15:43 お礼

30229 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free