一応、マクロを組みました。
あえて、いろいろなチェック作業はしていません。
チェック作業というのは、ちゃんと7桁入力されているか、とか、すべて半角の数字で入力されているか、など一切のチェックを行っていませんので、郵便番号の数字を入力する際は注意してください。
エクセルを立ち上げ、郵便番号のファイルを開きます。
「C」列と「D」列は削除しておいてください。
「Alt(「オルト」と読みます)」キーを押しながら、「F11」キーを押します。
「Visual Basic」の画面が現れますので、メニューから「挿入」→「標準モジュール」を選択します。
すると、右側の画面が白くなりますから、その新たに白くなった部分にカーソルを移動して、下のマクロをコピー&ペーストします。
「F5」を押して、マクロを走らせます。
入力を求めてくる画面になりますから、「-」のない、7桁の郵便番号を入力します。
すると、「C」列に該当の住所が表示されます(今回は文字列ですので、「F2」による訂正ができます)。
何も入力せず、「Enter」だけを押すと、入力が終了しますが、それまでは、7桁の数字を入力し続けられ、1行ずつ下げて住所を入れていきます。
通常のエクセルの画面に戻って、「F12」(名前を付けて保存)を押して、「~.xlsm」を選んで(「~」の部分は何でも構いません)保存します。
注意事項としては、次、このファイルを開くと、前回の文字(住所)がそのまま残っています。
しかも、マクロを走らせると、また、1行目からスタートしますので、気をつけてください(ファイルを閉じるときか、立ち上げるたびに「C」列を削除する、とか)。
Option Explicit
Sub zip()
Dim c As Integer
Dim i, r As Long
Dim z As String
r = Range("A1").End(xlDown).Row
c = 0
z = "0"
Do Until z = ""
z = InputBox("郵便番号を入力してください" & vbCrLf & "( -は入力しないでください)。" & vbCrLf & "何も入力しなければ終わります")
For i = 1 To r
If z = Cells(i, 1).Value Then
c = c + 1
Cells(c, 3).Value = Cells(i, 2).Value
End If
Next i
Loop
End Sub
以下は、読む必要はありません。
私の回答を見た、他の人に対して書いているようなものですから。
通常は「Find」などを使って検索するのが普通だとは分かっていますが、それでは、エラーが出てしまうので、あえて、泥臭い「For」ループを使って、入力された郵便番号を探しています。
大昔のパソコンと違って、たかが12万件ほどのループぐらい、全く時間はかかりませんから。
しかもこれなら、見つからなかった場合、何もしないので、そのまま再入力が可能だからです。
お礼
ちゃんと出来ました。 これをどのように加工して私の望みの格好にするか、これからが楽しみです。 Prome_Linさん、6回も回答してくれてありがとうございました。 そのほかの回答者も拙い質問に真摯に答えてくれて、全員をベストアンサーにしたいほどです。 今回はProme_Linさんをベストアンサーに致しますが、これからもよろしくお願いいたします。