No.6ベストアンサー
- 回答日時:
自前で文字列のマッチング等を行わなくても、Office (97以上?)にバンドルされている、「MSYubin7.dll」を使用すれば可能です。
サンプルコードですが、Accessで、以下の手順を踏み、
(1) レポートの新規作成ボタンを押下。
(2) はがきウィザードを選択。
(3) レポートを作成。
作成されたレポートのクラスモジュール内のAPI宣言部と「Sub DevideAddress」を見れば参考になると思います。
単に「左から最初の数字の位置で文字列を切り出す」(No.2のコメント参照)のではなく、都道府県名、市区町村名、町名、字名すべてを対応辞書と照合してマッチングできるようです。したがって、No.2のコメントで問題点として指摘した「漢数字で番地が記載されたデータ」にも対応できます。
問題点は、OfficeのヘルプにもMSDNにもドキュメントらしいドキュメントがないことです。
(上記ウィザードで生成されたコードにもコメントは皆無です)
もともと、参考URLの製品の機能の一部をMicrosoftにOEM提供したもので、Office製品の、いわば「おまけ」程度の位置付けですので、きちんとしたドキュメント、細かな機能が必要であれば、正規の製品版を購入した方がよいかもしれません。
(一度限りの単発仕事なら、そのためだけに買うのはちょっともったいない感じがしますが・・・)
参考URL:http://www.adv.co.jp/products/yu7v2/default.htm
nanashinogombei さん
ありがとうございました。お礼が遅れて申し訳ありませんでした。
Sub DevideAddress(stFullAdd As String, stAdd1 As String, stAdd2 As
。。。
End Sub
助かりました。
No.4
- 回答日時:
AccessもVBAもよく知らない者がこの質問に回答していいものかどうかわからないけど、とりあえず回答してみます。
参考になれば幸いです。私はデータベースソフトに「桐」を使っています。Accessなんかよりずっと敷居が低くて、Excelの代わりにも使えます。
それで、ご質問の問題解決はいとも簡単です。たぶん10分もかからないんじゃないかな。
「桐」を使った場合の考え方はこうです。
まず、住所文字列の中で番地はすべて半角文字から始まっていると仮定します。それと、番地までの市町村名他には半角文字が使われていないと仮定します。
それでいくと、住所の文字列の先頭から調べて、半角文字があれば、先頭から何バイト目にあるかを返します。
この数字を基に、先頭からこの数字の手前までなら「市町村名他」。この数字以降なら「番地」としてフィールドを分けることができます。
使うべき桐の関数は、#IS半角と#部分列だけですね。「桐」には文字列関数がたくさん揃っているので、ほとんど対話式で仕事を進められます。便利すぎて、いつまで経ってもAccessもVBAも覚えられないです。
たぶん、AccessやVBAでも可能なんだろうけど、ポイントは、半角文字を捜してその位置を返す関数ですね。
余計なお世話かもしれないけど、「桐」のURLを記します。90日以内ならタダで使えるようになっています。
参考URL:http://www.k3-soft.com/kiri9/index.html
whitepepper さん
ありがとうございました。「桐」をダウンロードして試用版を触ってみましたが、
慣れれば易そうですが、う~む、ちと時間がかかりそうです。
それでも、とてもよい参考になりました。もう少しがんばってみます。
No.3
- 回答日時:
すべてのデータが「○○町1-2-3」であるなら、
たとえば、A列に
府中市新町5-44-35
や
西東京市田無町12-6-7
なら、B列に
=LEFT(A1,FIND("町",A1,1))
C列に
=MID(A1,FIND("町",A1,1)+1,10)
とすれば取り出せます。
「町」がつかない場合は、エラーになります(#VALUE!)
たとえば、 多摩市落合8-35-7
また、市に「町」がつく場合、たとえば、
町田市森野8-28-14 町 田市森野8-28-14
のようになってしまいます。
No.2
- 回答日時:
残念ながら、完全に解決できる方法はないと思います。
一応、左から最初の数字の位置で切り出せば、らしい形が得られるとは思いますが、漢数字で番地を標記したデータが混在していた場合、お手上げです。
(全角の数字にも要注意ではありますが、こちらは漢数字とは違い、対応は可能です)
まあ、それでも上手く工夫すれば手作業でデータを整理するよりは大幅に作業負担を軽減できるのは間違いないので、やってみる価値はあるかもしれません。(データの品質によりけりでしょうけれど)
# Access や Excel より、正規表現の使用できるエディタ等を使用した方がよいかもしれません。
# (VBAでもできるとは思いますが、ちょっと面倒そうな気がする・・・)
nanashinogombei さん
ありがとうございます。やはり完全には難しいですか。。。
地道に切り出しを繰り返して見たいと思います。
No.1
- 回答日時:
この回答への補足
>akubihime212さん
早速のご回答ありがとうございました。
教えていただきましたログを見てみましたが、残念なことに「市区町村」と「番地」の双方のデータを活かしたいのです。また、件数がかなり多いので。。。
半角でも空白が入っていれば。。。と悔やんでいるのですが。。。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
初めて自分の家と他人の家が違う、と意識した時
子供の頃、友達の家に行くと「なんか自分の家と匂いが違うな?」って思いませんでしたか?
-
フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
あなたが普段思っている「これまだ誰も言ってなかったけど共感されるだろうな」というあるあるを教えてください
-
映画のエンドロール観る派?観ない派?
映画が終わった後、すぐに席を立って帰る方もちらほら見かけます。皆さんはエンドロールの最後まで観ていきますか?
-
海外旅行から帰ってきたら、まず何を食べる?
帰国して1番食べたくなるもの、食べたくなるだろうなと思うもの、皆さんはありますか?
-
天使と悪魔選手権
悪魔がこんなささやきをしていたら、天使のあなたはなんと言って止めますか?
-
住所録を市区町村、番地、建物名の3分割にする方法
Excel(エクセル)
-
ExcelやAccessで住所と番地を分けたい
その他(悩み相談・人生相談)
-
アクセスで教えてください。 住所一覧から 都道府県 市区町村 以下住所の3パターンに分けたいですが、
Access(アクセス)
-
-
4
Excelで住所を2つ(町名迄と番地以降)に分けるには?
Excel(エクセル)
-
5
エクセル関数で住所から丁目番地、建物名を抽出したい
Excel(エクセル)
-
6
アクセスで特定の数字以外(複数)抽出したい
Access(アクセス)
-
7
Accessで、1つの項目に複数の置換えを1度でするには?
Access(アクセス)
-
8
エクセルの関数で1つのセルに入っている住所を丁目までと番地以降に分けたい
Excel(エクセル)
-
9
住所から市町村名を取り出す
その他(Microsoft Office)
-
10
【ACCESS/必須条件とOR条件を組み合わせる】
その他(Microsoft Office)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
データベースファイル(.db)を開...
-
エクセルのフィルタ抽出が固まる
-
警察はスマホに保存した動画や...
-
CSVファイルでテキストの改行の...
-
Accessを開きなおすとテキスト...
-
更新クエリをリンクデータベー...
-
googleフォームでインストール...
-
ACCESSのSQLで、NULLかNULLでな...
-
マイクロソフトAccessでsqlのas...
-
レコード数のカウント
-
最新の日付とその金額をクエリ...
-
顧客データベースを作る場合、...
-
DBエラーを解決したい
-
20万行あるデータを動かしたい
-
Accessのリンクテーブルについて
-
シャープレジスター エラーコード
-
sqlite(spatialite_gui)での...
-
リスト形式の表とデータベース...
-
Access フォーム上でコンボボッ...
-
アクセス SQLで重複排除でcount...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
市区町村と番地を分けたいので...
-
MySQLで同じ値のデータを足して...
-
SQL 四分位を組み込む
-
1列おきに合計、a1 + c1 + e1 …
-
差し込み後、元データを変更し...
-
フィルターかけた後、重複を除...
-
エクセルで最後の文字だけ置き...
-
外部参照してるキーを主キーに...
-
for whichの使い方
-
EXISTSを使ったDELETE文
-
SQLで特定の項目の重複のみを排...
-
SELECT 文 GROUP での1件目を...
-
エクセルの関数について教えて...
-
重複していないレコードの抽出...
-
カーソル0件の時にエラーを発生...
-
SQLで列名を変数にできないでし...
-
INSERT文でフィールドの1つだ...
-
JANコードとPOSコードは同じ?
-
英語ができる方、問題をお願い...
-
SQLServerで文字列の末尾からあ...
おすすめ情報