お世話になります。
今、あるシートに1つのマクロを登録してあります。
リストで選択した番号に従って指定したセルにカーソルを飛ばすというマクロです。
で、それとは別のセルに同じシートで郵便番号を入力したら隣のセルに住所を反映させるマクロを登録したいのですが
ここで入手したコードをコピペして範囲を修正したのですが
どうやら下記の文章が2つあるのがいけない(?)のでしょうか?
「コンパイルエラー名前が適切ではありません」と出てきます。
Private Sub Worksheet_Change(ByVal Target As Range)
このコマンド(?)は1つのシートに2つ存在してはいけないものなのでしょうか?
あと 出来れば L列に入力した郵便番号を参照してM列に都道府県名、N列に市町村名以降を反映させたいので
その方法もご教示いただければ幸いです。
どちらかだけでも結構です。
・エラーの原因、
・住所を反映させるマクロ
ご教示いただける方、宜しくお願い致します。
No.2ベストアンサー
- 回答日時:
Private Sub Worksheet_Change(ByVal Target As Range)
(内容1)
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
(内容2)
End Sub
という状態になっているのでしょうか?
それでしたら、1つ目のマクロの最後に中身だけ貼り付けで大丈夫だと思います。
Private Sub Worksheet_Change(ByVal Target As Range)
(内容1)
(内容2)
End Sub
ご回答ありがとう御座います。
>という状態になっているのでしょうか?
お察しの通り、多分そんな状態です。
2個目の
>Private Sub Worksheet_Change(ByVal Target As Range)
>(内容2)
>End Sub
を貼り付けた瞬間に1個目と2個目の間に線が入って勝手に区切られたので感動していたのですが
それがいけなかったのでしょうか?
要は
>Private Sub Worksheet_Change(ByVal Target As Range)
>End Sub
上記の2つが同じシートにあってはいけないと解釈しましたが
この解釈で大丈夫ですか?
No.6
- 回答日時:
No3です。
マクロを利用すれば出きます。
A列に半角郵便番号を入力するとB列に全角郵便番号が表示及び選択状態になるので、
そのまま、「変換」キーを押せば住所変換されます。
※ B列は、入力規則→日本語入力→ひらがなに設定する
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 Then
If Target.Value <> "" Then
Cells(Target.Row, 2) = StrConv(Target.Value, vbWide)
Cells(Target.Row, 2).Select
SendKeys "{F2}"
Else
Cells(Target.Row, 2) = ""
End If
End If
End Sub
ご回答ありがとう御座います。
郵便番号変換ウィザードを入れておけば ご教示いただいたマクロを
使わなくても この方法で出来るのでしょうか?
なぜか 出来てしまったのですが。。。
何かよく分かりませんが 無事に郵便番号から住所が反映されましたので
めでたしめでたしなのですが 何で出来たのかが分からず 少しばかりモヤモヤしています。
ありがとう御座いました。
No.5
- 回答日時:
反応させるセルやセル範囲が(Targetを判別するステップ)違うと思うのですが同じですか。
例えば先頭に
If Target.Column=1 Then
A処理のコード群
End If
If Target.Column=3 Then
B処理のコード群
End If
のようなことで、今までは済むと思ってましたが、すみわけは効きませんか。シートのセルに、コードのどちらの部分を処理するか処理FLAGを立ててそれを元にChangeイベントルーチンに飛んできたとき振り分けるとか。
>郵便番号を参照してM列に都道府県名、N列に市町村名以降を反映させたいので
郵便番号住所対応表は10数万行(レコード)があるようなので、アクセスのような利用を考えざるを得ないと思います。エクセルのMSクエリでどうですか。やったこと無いのですが。WEBにアクセスの例があったような。
ご回答ありがとう御座います。
他の回答者様の回答で解決できました。
お手数お掛けしました。
ちなみに
>シートのセルに、コードのどちらの部分を処理するか処理FLAGを立ててそれを元にChangeイベントルーチンに飛んできたとき振り分けるとか。
とか
>エクセルのMSクエリでどうですか
この辺は ほとんど 意味が理解出来ませんでした。。。。
No.4
- 回答日時:
>エラーの原因
おっしゃるとおり、同じ名前のプロシージャは同一シート内に存在できません。
この場合は、2つのマクロを1つのPrivate Sub Worksheet_Change(ByVal Target As Range)内に書いてしまえば良いと思います。
>住所を反映させるマクロ
郵便番号、都道府県名、市町村名を並べた一覧を別シートなどに作成しておけばできますね。関数を使うだけでも簡単にできます。
例えば、「住所」というシートにA列に郵便番号、B列に都道府県名、C列に市町村名を入力した一覧を作ったとします。
あとはM1に
=VLOOKUP(L1,住所!$A:$C,2)
N1に
=VLOOKUP(L1,住所!$A:$C,3)
を入力して、あとは必要な行数分コピーすればOKです。
ご回答ありがとう御座います。
>2つのマクロを1つのPrivate Sub Worksheet_Change(ByVal Target As Range)内に書いてしまえば良いと思います。
かしこまりました。ありがとう御座います。
>郵便番号、都道府県名、市町村名を並べた一覧を別シートなどに作成しておけばできますね。
なるほど!そういえばそうですね!
でも その準備の方が面倒じゃないですか?
ベクターか どこかに一覧みたいなのありますかね?
(または郵便局のHPでしょうか?)
一応、Vlookupぐらいは出来るので
>「住所」というシートにA列に郵便番号、B列に都道府県名、C列に市町村名を入力した一覧を作ったとします。
このシートが簡単に手に入れば その方が楽ですね。
No.3
- 回答日時:
こんにちは。
<エラーの原因>
No2さんの通りです。
<住所を反映させるマクロ>
以下を参考にしてください。
郵便番号変換ウィザード
http://www.morgan.co.jp/kiso/5excel-5.htm
郵便番号から住所を自動入力
http://dreamy.boy.jp/tec41.htm
ご回答ありがとう御座います。
一応、郵便番号変換ウィザードについては調べておりました。
すみません。書いておけば良かったですね。
(本当は書いておこうと思っていたのですが忘れてしまいました)
ウィザードだと「まとめて変換」になりますよね。
最悪それでもいいのですが、そうやって諦める前に何とかならないかなぁ?
と思いこちらで質問を立てました。
下のURLも一応 調べてはあったのですが 何か「両方に入力しないといけないのかなぁ?」
と思い、他の方法を探しておりました。
>郵便番号から住所を自動入力
の方法で郵便番号を1回しか入力しないで出来る方法が可能でしょうか?
出来れば再登場お願いします。
No.1
- 回答日時:
>・エラーの原因
>どうやら下記の文章が2つあるのがいけない(?)のでしょうか?
そのとおりだと思いますが、どんな記述の仕方をしてるのかコードの提示
がないので具体的な説明は出来ません。
説明できるのは、↓くらいかな。
TargetのAddressやRow、Columnなどのセル範囲か、TargetのValue、Formula、Textなどで
条件分岐してはいかがでしょう?
ご回答ありがとうございます。
>TargetのAddressやRow、Columnなどのセル範囲か、TargetのValue、Formula、Textなどで
>条件分岐してはいかがでしょう?
すみません。。。。
おっしゃる意味が丸でわかりません。。。。
>どんな記述の仕方をしてるのかコードの提示がないので
これにつきましては「何が書いてあるか理解してない」ので、どこから
どこまでを ここに貼ればいいのか分からないので。。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
誕生日にもらった意外なもの
みなさんがもらった誕生日プレゼントで面白いものがあったらぜひ教えてください!
-
フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
あなたが普段思っている「これまだ誰も言ってなかったけど共感されるだろうな」というあるあるを教えてください
-
映画のエンドロール観る派?観ない派?
映画が終わった後、すぐに席を立って帰る方もちらほら見かけます。皆さんはエンドロールの最後まで観ていきますか?
-
海外旅行から帰ってきたら、まず何を食べる?
帰国して1番食べたくなるもの、食べたくなるだろうなと思うもの、皆さんはありますか?
-
天使と悪魔選手権
悪魔がこんなささやきをしていたら、天使のあなたはなんと言って止めますか?
-
A1セルに入力したら、入力時間をA2セルに自動挿入
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで特定の文字列が入っ...
-
特定の文字がある行以外を削除...
-
Excel グラフのプロットからデ...
-
Excelのフィルター後の一番上の...
-
エクセル 上下で列幅を変えるには
-
エクセル マクロ オートフィ...
-
AのセルとB行を比較して、一致...
-
excel 小さすぎて見えないセル...
-
[EXCEL]ボタン押す→時刻が表に...
-
【Excel関数】UNIQUE関数で"0"...
-
excelのデータで色つき行の抽出...
-
結合されたセルをプルダウンの...
-
excel 同じ番号のデーターを横...
-
エクセルマクロで偶数行(又は...
-
Excelで結合されたセルの間に列...
-
エクセルVBAのEntireRow.Hidden...
-
直近の5個の平均を求めたい
-
エクセルで昨日までの日付デー...
-
エクセル マクロで数値が変っ...
-
Excel ウインドウ枠の固定をす...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで特定の文字列が入っ...
-
[EXCEL]ボタン押す→時刻が表に...
-
エクセル 上下で列幅を変えるには
-
特定の文字がある行以外を削除...
-
【Excel関数】UNIQUE関数で"0"...
-
VBAで色の付いているセルの行削除
-
Excel グラフのプロットからデ...
-
エクセル マクロ オートフィ...
-
エクセル マクロで数値が変っ...
-
エクセルのセルに指定画像(.jpg...
-
結合されたセルをプルダウンの...
-
AのセルとB行を比較して、一致...
-
罫線の斜線を自動で引くマクロ
-
excel 小さすぎて見えないセル...
-
excelのデータで色つき行の抽出...
-
Excel2007で、指定範囲の行高さ...
-
サイズの違うセル 並べ変え
-
エクセル 時間の表示形式AM/PM...
-
エクセルマクロで偶数行(又は...
-
A1に入力された文字列と同じ文...
おすすめ情報