こんばんは。
細かなエラー処理はなされていませんが、こういうことでしょうか。
ただし、IMEのバージョンとOffice のバージョンによって動かないことがあります。
TextBox1 に、郵便番号を入れて、Enter を入れるとセルに郵便番号が入り、もう一度Enter を入れると、その変換文字が、右横のセルに入ります。
本来は、検索システムを使って、郵便番号から変換するのが良いのです。WinArrowさんという方が出している郵便番号変換はフリーでは有名です。他は、郵便番号ウィザードから、郵便番号検索エンジンを使えればよいのですが、プロテクトが入っているので使えません。有償のものは高いので、仕事でもなければ買わないです。
'-------------------------------------------
'Option Explicit
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
Dim buf As Variant
If KeyCode <> 13 Then Exit Sub
With Cells(Rows.Count, 1).End(xlUp).Offset(1)
buf = TextBox1.Value
If Len(buf) = 8 And IsNumeric(Left(buf, 1)) Then
.Value = buf
ChangeZip .Cells(1)
'変換されなかったときにエラー処理
If Not TextBox1.Value Like "[一-龠]*" Then
.Value = ""
End If
Else
If Len(Left(buf, 1)) <> LenB(StrConv(Left(buf, 1), vbFromUnicode)) Then
.Offset(-1, 1).Value = TextBox1.Value
End If
End If
End With
TextBox1.Value = ""
End Sub
Function ChangeZip(rng As Range)
With rng.Validation '入力規則
.Delete
.Add Type:=xlValidateInputOnly
.IMEMode = xlIMEModeHiragana 'IME立ち上げ
End With
rng.Select
SendKeys rng.Value '番号を入れる
SendKeys "{ }" '変換
SendKeys "{ENTER}"
SendKeys "{LEFT}"
SendKeys "{DOWN}"
End Function
お礼
ありがとうございます! 始めは=phoneticはカタカナを割り出すものだと思っていたのですが… 変換するときの情報を扱っていたのですね… Application.GetPhoneticという言葉を使用することで 簡単に処理をすることができました!! いろいろ解説までしていただきありがとうございます。