A列に郵便番号を入れると、(例:123-4567)B列に住所が出るマクロを組みたいのですが
なかなかできません。例えばA1セルに入力するとB1セルに。A4セルに入力するとB4セルに
出るといった感じです。インターネットで調べながら、
Option Explicit
' ワークシートのChangeイベント記述
Private Sub Worksheet_Change(ByVal Target As Range)
Dim xlAPP As Application
' 郵便番号セル以外では動作させない
If Target.Address <> "$A$1" Then Exit Sub ' (1)
' 3桁以上の郵便番号があり、住所がブランクの場合のみ住所を変換させる
If ((Len(Cells(1, 1).Value) >= 3) And (Cells(1, 2).Value = "")) Then ' (2)
Set xlAPP = Application
xlAPP.EnableEvents = False ' (3)
' 郵便番号を全角変換し住所に転記
Cells(1, 2).Value = StrConv(Target.Value, vbWide) ' (4)
' 住所のセルを選択
Cells(1, 2).Select ' (5)
' F2 → Shift+Home → F13 を擬装入力する
SendKeys "{F2}", True ' 編集モード ' (6)
SendKeys "+{HOME}", True ' 文字列全体を選択 ' (7)
SendKeys "{F13}", True ' 再変換(MS-IME) ' (8)
xlAPP.EnableEvents = True
End If
End Sub
というコードを作ったのですが、これはA1セルしか対応しておらず、A列全体で対応できません。
何か方法があればご教授いただけたら幸いです。
No.1ベストアンサー
- 回答日時:
「A1セル」あるいは「1行目」を指定している箇所を漏れなく修正します。
変更例:今のマクロを全て消して下記に差し替える
Private Sub Worksheet_Change(ByVal Target As Range)
Dim xlAPP As Application
' 郵便番号セル以外では動作させない
If Target.column <> 1 Then Exit Sub ' (1)
if target.count > 1 then exit sub
' 3桁以上の郵便番号があり、住所がブランクの場合のみ住所を変換させる
If ((Len(Cells(target.row, 1).Value) >= 3) And (Cells(target.row, 2).Value = "")) Then ' (2)
Set xlAPP = Application
xlAPP.EnableEvents = False ' (3)
' 郵便番号を全角変換し住所に転記
Cells(target.row, 2).Value = StrConv(Target.Value, vbWide) ' (4)
' 住所のセルを選択
Cells(target.row, 2).Select ' (5)
' F2 → Shift+Home → F13 を擬装入力する
SendKeys "{F2}", True ' 編集モード ' (6)
SendKeys "+{HOME}", True ' 文字列全体を選択 ' (7)
SendKeys "{F13}", True ' 再変換(MS-IME) ' (8)
xlAPP.EnableEvents = True
End If
End Sub
No.2
- 回答日時:
横からすみません。
郵便番号ウィザードでは・・・
2007-2010
http://office.microsoft.com/ja-jp/excel-help/HP0 …
2000-2007
http://www.microsoft.com/downloads/ja-jp/details …
人は易きに流れ。。。
ご回答ありがとうございます。郵便番号変換ウィザードでは一気に変換するしか方法がなく、
途中のセルを修正したいときにすぐに確かめることができず使い勝手が悪いため使用していません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルVBAでオブジェクトが必要です 2 2022/09/10 16:37
- Visual Basic(VBA) excel2021で実行できないマクロ。どこを直したらいいのか 2 2022/03/28 03:40
- Excel(エクセル) B列に文字がはいったらA列に数字が入るマクロードを完成させたい 4 2023/04/21 01:58
- Excel(エクセル) 指定文字列が該当するA列をアクティブセルにするには 3 2022/08/17 13:18
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Visual Basic(VBA) vbaでセルに入力したときに,その横にあるセルを保護し入力不可にするマクロを作りたいです。 2 2022/04/24 20:59
- Visual Basic(VBA) Excelにて、シート1の行を削除するとシート2のシート1と同じ番号の行も削除したい 3 2022/05/08 04:24
- Visual Basic(VBA) VBAで重複した値のセルに色付けをしたい 1 2022/11/02 16:12
- Excel(エクセル) 2つのVBAを一緒にしたら機能しなくなりました(エクセル) 7 2022/06/02 12:41
- Visual Basic(VBA) Changeイベントで複数セルへの貼り付けおよび値削除時に1個目のセルのみエラーになる 3 2022/12/21 09:07
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelはなんで先頭の0を消すん...
-
Excel元に戻す方法を教えてくだ...
-
【Microsoft Office Excel Comp...
-
Excelが固まってしまった。
-
西暦や和暦の表示をyyyymmdd表...
-
Excel 2019 のピボットテーブル...
-
【関数】スペースがいくつ入っ...
-
【Excel】セル内の時間帯が特定...
-
excelの不要な行の削除ができな...
-
Excelのオートフィル
-
別シートからの文字を変更
-
Excelのセルを飛ばして入力する
-
Excel初心者です。 詳しい方、...
-
エクセルの行の抽出について質...
-
Excel初心者です。 詳しい方、...
-
【マクロ】エクセルにかいてあ...
-
EXACT関数とIF関数の組み合わせ...
-
スプレッドシート クエリ関数 1...
-
エクセルで指定した日付、店舗...
-
Excelのグラフ軸について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ファイル内にある数字の出現回...
-
Excel関数の先頭に「@」が入っ...
-
エクセルの気味悪い不思議
-
Excel VBAで、実行時にsheet上...
-
表示されている人数だけを数え...
-
他人が作ったマクロの理解
-
Excelの関数について質問です。
-
Excel 集計表
-
エクセル 日時の計算式について
-
Excelの関数に関して質問です。...
-
エクセル:セル内の文字列の下...
-
絞り込み検索
-
エクセルの関数で
-
エクセルの書式設定について教...
-
余分なEXCELファイルに印刷され...
-
VBA 同一シート内での転記の仕方
-
長期休みの関数はありますか
-
Excelの空のセル
-
エクセルで入力してある文を別...
-
Excelのマクロで、セルを結合し...
おすすめ情報