個人事業主の方必見!確定申告のお悩み解決

いつもお世話になります。

今回も初心者的な質問ですみません。

Excel郵便番号変換ウィザードをインストールし、使用できるまで
にはなったのですが、VBAで直接呼び出そうとマクロの記録を
試みたのですが、記録されません。

VBAのコードから使用する方法を教えてください。

よろしくお願いいたします。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

これってたしかIMEですよね



簡単に言うとエクセルの機能ではないので、エクセルでは動作が記録されないとでも言うか

いつもお世話になってるサイトにこんなのがありました
http://www.asahi-net.or.jp/~ef2o-inue/vba_o/sub0 …
    • good
    • 0

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q【VBA】郵便番号を入れたら住所が出てくる仕組み

http://www.asahi-net.or.jp/~ef2o-inue/vba_o/sub05_130_050.html

このサイトを参考に見たのですが
かなり難しそうなのですが

これは簡単にできるものでしょうか?

Aベストアンサー

IMEでよかったらですが、関数を使った一案です。
IMEのツール=>辞書の追加で 郵便番号辞書の機能を追加

  A      B    C
 郵便番号   住所1 住所2
=PHONETIC(B2)

B2セルに =PHONETIC(B2)セルに入れて下までコピーしておきます。

B列に 全角で郵便番号を入れると、希望の住所に変換できます。
A列には、郵便番号が表示されます。
C列には、残りの住所を入力します。
住所入力がかなり楽になるのは間違いないです。


但し、IMEの郵便番号辞書は、常に最新に更新されるわけではないので
注意は必要です。

Q郵便番号を入れると住所が出るマクロを組みたい

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列全体で対応できません。
何か方法があればご教授いただけたら幸いです。

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桁以上の郵便番号があり、住所がブランクの場...続きを読む

Aベストアンサー

「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

「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 xl...続きを読む

QExcel2010関数(郵便番号⇔住所変換)

エクセル2010を使用しています。

例えば、A1セルに「郵便番号」を入力すると、
A2セルに「住所」が反映されるような関数はあるでしょうか?

また逆パターンで、A1セルに「住所」を入力すると、
A2セルに「郵便番号」が反映されるような関数があれば、
併せてご教示頂きたく、何卒宜しくお願い致します。

Aベストアンサー

今まで自分も郵便番号変換ウィザードの紹介をしていましたが
はまちゃんサイトで↓を知りました。
http://hamachan4.exblog.jp/8221636/

とても便利です。ぜひご一読を・・・

Qある範囲のセルから任意の値を検索して、その隣のセルの値を取得するという関数はありますか?

Excelの関数について質問します。
ある範囲のせるを検索して、その隣のセルの値を取得するという関数を探しています。
なければユーザー定義で作りたいと思っています。
VLOOKUP関数では一番左端が検索されますが、
それをある範囲まで拡張して、
その右隣の値を取得できるようにしたいのです。
どうかお知恵をお貸しください。

Aベストアンサー

●X1セルの値を範囲A1:F200の中から探して、その右隣のセルの値を返す

 =OFFSET(A1,SUMPRODUCT(ROW(A1:F200)*(A1:F200=X1))-1,SUMPRODUCT(COLUMN(A1:F200)*(A1:F200=X1)))

※最初のA1はワークシートの左上隅を示すものなので、検索範囲に関わらずA1固定
※SUMPRODUCT(ROW(A1:F200)*(A1:F200=X1)) ⇒ A1:F200で値がX1と一致するセルの行番号

>その「ある範囲」の中には検索したい値が入っているセルは1つしかありません。
というのが前提です。複数のセルがHITすると関係ないセルの値が返るので、
場合によっては、IFをかぶせてCOUNTIFで確認した方が良いかもしれません。
 ex. =IF(COUNTIF(A1:F200,X1)=1,【上記数式】,"えらー")

ちなみに、VBAでやるならこんな感じになるかと。

動作の概要
 【検査範囲】から【検査値】を探し、
 最初にHITしたセルについて、右隣のセルの値を返す。
 ex. =Sample(X1,A1:F200)

'--------------------------↓ココカラ↓--------------------------
Function Sample(ByVal 検査値 As Variant,ByVal 検査範囲 As Range)
 For Each セル In 検査範囲
  If セル = 検査値 Then Exit For
 Next セル
 Sample = セル.Offset(0, 1)
End Function
'--------------------------↑ココマデ↑--------------------------

いずれもExcel2003で動作確認済。
以上ご参考まで。

●X1セルの値を範囲A1:F200の中から探して、その右隣のセルの値を返す

 =OFFSET(A1,SUMPRODUCT(ROW(A1:F200)*(A1:F200=X1))-1,SUMPRODUCT(COLUMN(A1:F200)*(A1:F200=X1)))

※最初のA1はワークシートの左上隅を示すものなので、検索範囲に関わらずA1固定
※SUMPRODUCT(ROW(A1:F200)*(A1:F200=X1)) ⇒ A1:F200で値がX1と一致するセルの行番号

>その「ある範囲」の中には検索したい値が入っているセルは1つしかありません。
というのが前提です。複数のセルがHITすると関係ないセルの値が返るので、
場...続きを読む

Qエクセルで、郵便番号を入力すれば、自動的に右のセルに住所が入力される方法

質問をご覧になっていただきありがとうございます。

タイトルの通りなのですが、
郵便番号を入れれば、自動的に右のセルに住所が入力される方法
をご存知ないでしょうか?

一応それらしいソフトはインストールしたのですが、
使い方が分かりません。私のバージョンは2000で、会社のは2007です。
http://office.microsoft.com/ja-jp/excel/HP100775141041.aspx
ここからダウンロードしました。

明日仕事で使いたいので焦ってます。どうかよろしくお願いします。

Aベストアンサー

2007の例です。
「アドイン」タブの「ウィザード」の▼から「郵便番号変換」をクリックします。
「郵便番号から住所を生成する」にチェックをして「次へ」、「郵便番号データのセル範囲」にはシートでの範囲(たとえばA列)をカーソルで選択して入力します。同様に「住所を出力するセル範囲」(たとえばB列)を入力します。その後に必ず「既存のセルを上書きする」にチェックがあることを確認します。チェックが無いと表示されません。
「次へ」でコメントに出力するにチェックがあると思いますのでそのまま「完了」します。

QExcel2010 郵便番号変換ウィザードがエラーになる

住所録から郵便番号を降り出したく、郵便番号ウィザードをインストールしましたが
「郵便番号変換エンジンが見つかりません」とでます。
ネットでさまざまな事例を検索してみましたが、原因がわかりません。
どなたかご教授いただけませんでしょうか

・windows7 32ビット版
・office standard 2010 32ビット版
・Excelアドイン郵便番号変換ウィザード
 http://excelzipcode7japan.codeplex.com/releases/view/48005
・Microsoftのホームページから最新の郵便番号辞書へ更新(2014年11月版)

宜しくお願いします。

Aベストアンサー

アドインを使用するために
こちらから32bit用の zd201305.exe をダウンロードします。
http://web.archive.org/web/20140209020157/http://www.microsoft.com/ja-jp/download/details.aspx?id=973
ダブルクリックするとインストールが行われます。
アドインの zipcode7.xla がC:\Program Files (x86)\Microsoft Office2010\Office14\Library
にあることを確認。
アドインが使用する郵便番号辞書とIME2010の郵便番号辞書とは別物です。
http://www.h3.dion.ne.jp/~sakatsu/TelPost.htm#IME_ZIP
白里市は出てきましたが2013年から更新は行われていないので・・・。

QExcel2016の郵便番号変換ウィザードが機能しない

Excel2016の郵便番号変換ウィザードが機能しません。
住所を選んで、「アドイン」→「ウィザード」→「郵便番号変換」→「住所から郵便番号を生成する」→「次へ」→「郵便番号を出力するセル範囲」を選んで→「完了」
郵便番号は出力されず、「郵便番号変換ウィザード:この住所から郵便番号への変換は、できませんでした」とのエラーが、住所を入力したセルに出ます。

元々Excel2013だったものが、Excel2016にアップデートしました。
Excel2013の時はうまく動いていたのですが、Excel2016になってから、いつからか分かりませんが、機能しなくなりました。

「ファイル」→「オプション」→「アドイン」を見ると、「アクティブなアプリケーションアドイン」に「郵便番号変換ウィザード」が入っています。

Office郵便番号辞書(2013年5月)を再インストールしても改善しませんでした。←以前にダウンロードしておいたもの。

Aベストアンサー

2016 ではないので、検索代行になりますが、

Excel2016で郵便番号検索ウィザードで変換ができない
https://answers.microsoft.com/ja-jp/msoffice/forum/msoffice_excel-mso_winother/excel2016%E3%81%A7%E9%83%B5%E4%BE%BF%E7%95%AA/80b0cf8a-e60b-4896-a372-4a490f6e39f0

QSub ***( ) と Private Sub ***( ) の違い

初歩的な質問で申し訳ありませんが・・・

自分でコードを書いていても、イベントが発生したりした時の処理で、コードのウィンドウで上のドロップダウンリストで選択できる時の処理などは自動的に[Private Sub Command1_Click( )]などと出てくるのでそのまま使っています。自分で別途プロシージャーを作成する時は[Sub ****( )]としています。
ですがその違いを理解しないまま、自分で作成する時は[Private Sub]ではなくて[Sub]を使っています。

Sub ***( ) と Private Sub ***( ) の違いは何なんでしょうか?
どなたか説明頂けませんか?
よろしくお願いします。

Aベストアンサー

「Sub」の部分にカーソルを置いて[F1]を押せばヘルプが起動します。
「指定項目」のところに「Public」と「Private」の説明がありますよ。
省略して「Sub hogehoge()」とした場合は「Public」とみなされます。

Publicは「すべてのモジュールから呼び出せるプロシージャ」ということになります。
Privateとすると「同じモジュールの中からしか呼び出せないプロシージャ」となります。

もしExcelをお持ちでしたらExcelのVBEで標準モジュールを追加し、「Sub Test1()」と「Private Sub Test2()」を作成してみてください。
そしてExcelの[ツール]-[マクロ]-[マクロ(Alt+F8)]でマクロ実行のダイアログを表示させてみるとわかります。
ここには実行できるプロシージャの一覧が表示されますが、Test1は表示されているけれどTest2は表示されません。
Test1はPublicで、Test2はPrivateだからです。

QエクセルのIF関数で、文字が入力されていたならば~

エクセルのIF関数で文字が入力されていたならば~、という論理式を組み立てたいと思っています。

=IF(A1="『どんな文字でも』","",+B1-C1)

A1セルに『どんな文字でも』入っていたならば、空白に。
文字が入っていなければB1セルからC1セルを引く、という状態です。

この『どんな文字でも』の部分に何を入れればいいのか教えてください。

またIF関数以外でも同様のことができれば構いません。

宜しくお願いします。

Aベストアンサー

=IF(ISTEXT(A1),"",B1-C1)

でどうでしょうか?

QVBAユーザーフォームで郵便番号から住所変換するには?

会社で顧客リストを作成しているのですが、エクセルではじめてVBAを利用しようと思い、ユーザーフォームを使って連続登録までのマクロコードは入力出来たのですが、テキストボックスに郵便番号を入力すると自動的に次のテキストボックスに住所が入力されるようにするには、どのようなコードを追加すればよいのでしょう?

Aベストアンサー

ワークシート上で可能にする方法。
http://www.asahi-net.or.jp/~ef2o-inue/vba_o/sub05_800_040.html

フォームから使うには、こちらを参考にしてください。
ユーザーフォームで郵便番号住所変換
http://www.asahi-net.or.jp/~ef2o-inue/vba_o/sub05_130_050.html

作業には、
1.郵便番号データ取り込み
2.データ変換(アクセス型式)
3.VBAからデータ利用
という手順です。
1はネットから入手できますが、2~3は全てVBAでコードを作成する必要があります。

簡単な方法として、アドインや市販ツールを利用する事も出来ます。


人気Q&Aランキング