重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

エクセルで・・・

A1に郵便番号を入れると自動的にB1に住所を入力するような方法ってありませんか?

※B1に郵便番号を入れて変換(IMEの機能?)
※郵便番号変換ウィザードを使う
※うえの2つをマクロ化する

以上の3(2)つは除く

A 回答 (7件)

マクロを完全否定ではない?下のコードはIME2000の機能を使っています。



変換モード=人名/地名で行う必要があります。(←重要)

これが質問の主旨にあっているか不明です。


都道府県別の郵便番号テーブルを使っても、『以下に掲載がない場合』、『次のビルを除く』、『地階・階層不明』などの文言があって面倒になる場合があったように記憶しています。

下のコードではA列に郵便番号を入力します。(例、160-0001)
有効な郵便番号であれば隣のセル(B列)に住所を表示します。(東京都新宿区片町)
住所に変換できなければ、そのまま表示します。

<**1>の行を削除すれば、丁目、番地号、補助住所等を続けて入力できるはずです。
ご参考に。(Excel2000です)



Sheet1で作成(Sheet1のコードウインドウに貼り付け)

Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Count = 1 Then '単一セルの入力の場合
    If Target.Column = 1 And Target.Value <> "" Then '『Column=1』はA列の意味
      Target.Offset(0, 1).Select
      Target.Offset(0, 1).Value = Target.Value
      SendKeys "{F2}"
      SendKeys "{Convert}"
      SendKeys "{Enter}"
      SendKeys "{Enter}" '**1
    End If
  End If
End Sub
    • good
    • 0

回答を書いているうちに


>都道府県別の郵便番号テーブルを使っても、『以下に掲載がない場合』、『次のビルを除く』、
>『地階・階層不明』などの文言があって面倒になる場合があったように記憶しています。
という回答が載ってしまいました。
確かに、そういうのもありますが、新しい郵便番号で入力するにはこれ以外思いつきませんでした。
(新しい郵便番号でなくてよければこの限りではありません)
私のプログラムでは、『以下に掲載がない場合』の部分と、()でくくられた部分は削除してあります。

nishi6さんへ
私のパソコンは、IME2000なのですが、回答の方法を試したのですが、
うまく変換されません。(変換モード=人名/地名で行いました)
何か他にも必要な設定があるのですか?(私が質問するのもおかしなものですが)
あとIME2000の新しい郵便番号になった時、郵便番号辞書(でいいのかな?)はアップグレード版がありますか?(2、3ヶ月遅れでいいのですが)
あれば、私の方法より楽そうなんで・・・
    • good
    • 0
この回答へのお礼

皆様 ご回答ありがとうございました。

お礼日時:2002/12/06 23:07

郵便番号って毎月変更があるんですよね~


私はVBですが、郵政のホームページ(#5さんと同じ)から
CSV形式のデータをDownLoadし、データベース化して使っています。
毎月更新するのも面倒なので、2、3ヶ月に1度、その分の差分データを
更新します。(その時、郵便番号をチェックし、変更のあった郵便番号は
チェックをいれて(自動更新は無理)手入力で住所の更新をしています。

一応VBAでつくってみたので興味があれば補足してください。
(1)全県データ(CSV)→データベース化
(2)A1に郵便番号入力→B1に住所表示
まではつくりました。(差分データ更新の方はつくっていません)

その時には、
1.[Alt]+[F11]でVisialBasicEditerへ移り
  ツール→参照設定の中に「Microsoft DAO 3.51 Object Library」
  が存在するか確認してください(私のVBAはこれを使用していますのでないと出来ません)
2.http://www.post.yusei.go.jp/newnumber/down_2.htmからDownLoadして
  Ken_All.zipを展開したKen_All.csvのフォルダとデータベースを保存する
  フォルダの場所
以上を確認の上、補足してください。
    • good
    • 0

お望みのステップを固持されるのでしたら、エクセルの一般関数ではできません。


とりあえずマクロに頼ってみるべきでしょう。

えも、下記のような逆発想が認められるなら可能ですよね。

1.A1 に関数を入力します。 → =PHONETIC(B1)
2.B1 に郵便番号を入力し、住所に変換します。

IMEの郵便番号辞書(郵便番号変換ウィザードとは違います)が必要ですが、これで
A1 に郵便番号、B1 に住所――の形になります。
    • good
    • 0

(1)郵便番号辞書の仕組み(ファイルの項目フォーマット)を知る。


(2)または自分でファイルの仕組みを作り、その形式の
郵便番号辞書を作る。ご近所の分なら可能(歯医者に来る
患者の住所とか、自店の顧客の住所録用とかに限れば可能でしょう。)
(3)(1)または(2)を検索する(郵便番号を指定した時の住所を探す)プログラムを自作する。(1)に対してはソフトが見つかっても、自分のプログラム内で使える形式でないとダメです。使えるソフトは通常バッチ処理用であるので、「入れると自動的に」入りません。
*(1)に付いて、それを行ってくれるものの1つが、郵便番号ウイザード(アドイン)です。
(4)そしてセルの値が変わったとき等のきっかけを捉えるプログラムのしかけ(VBA)を使って、作ったプログラムを埋めこむ。
(5)数百ぐらいなら、郵便番号(1列)と住所(原則丁目までですが)(1列)の対応表を計2列に入力し、VloolUP関数を使えば可能だと思います。
このレベルのことを、考えておられるのですか?
    • good
    • 0

まず 郵便番号のデータをダウンロードしてきます。


http://www.post.yusei.go.jp/newnumber/down_2.htm
Sheet1に A列に郵便番号を入れて、B列に住所を入れます。

で、住所が出るB1には、
=IF(ISNA(MATCH(A1,シート1!A:A,0)),"",INDEX(Sheet1!B:B,MATCH(A1,シート1!A:A,0)))

といれたら、いいのかな?
未確認です。
ま、関数は、こういうのを使うといけると思うので、詳細は調べてみてください。
    • good
    • 0

郵便番号と住所のデータをどこかに用意しておかないと、無理だと思いますが...



マクロでA1にデータを入力を検知し、その後A1に入った郵便番号から
データにアクセスし、一致した住所をB1に入れる
という仕組みを作ればできなくはないですが...

この回答への補足

・・・・
65536を超えませんか?
それは考えたんですがね・・・

補足日時:2002/11/15 22:59
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!