アプリ版:「スタンプのみでお礼する」機能のリリースについて

こんにちは。
ご質問があります。
UserFormでTextBoxに名前を入力すると上のTextBoxにフリガナが自動で入力されるようになるまでは作成したのですがそれをシートに転記したときに漢字で書かれた方が転記されるセルと同じところにフリガナとして転記されるようにしたいのですが方法はございますか?

現在は隣のセルにフリガナを転記してるのですがUserFormを使わず、シートにそのまま打ち込んだ場合に、そのフリガナのセルにも手打ちで入力しなければならないといった感じで手間がかかります。

どうかお願いいたします

A 回答 (6件)

下記も参考までに書いてみます。

エクセルVBAの固有の話として。
>転記されるセルと同じところにフリガナとして転記されるようにしたいのですが、からの発想です。
ーー
メモ帳に田中 一郎と入力しました。
コピーして、エクセルシートのA20(どこでもよい)に貼り付けしました。
ご存知かもしれませんがメモ帳をコピー張り付けすると、フリガナ情報(入力時仮名変換情報はメモ帳が保持する仕組みでないため)はコピー先と遮断されます。それで無理に(メモ帳入力に)このようにしました。
そして標準モジュールに
Sub test01()
Range("A20").SetPhonetic
Range("A20").Phonetics.Visible = True
End Sub
とし実行しましたら
A20に漢字名 田中 一郎の上にカタカナ小字でフリガナが振られました。
質問ではTextBox1.TextでセルA20に漢字氏名の値をセットし、その後上記の
コードを実行すれば、セル内にフリガナがセットされると思う。
このフリガナは入力時字のカナ漢字変換と関係なく、氏名漢字からIME辞書を参照して、一番適当と思われる読みを選んでセットしてくれるたものです。
ですから平凡な「明」のような漢字で「メイ」と読むのが正しいときなどは良くないかもしれないですが。
#2で書いておられることと思うがGetPhoneticも事情は同じです。
    • good
    • 0
この回答へのお礼

ありがとうございます。
いろいろ勉強になります。
いままでUserFormを使って登録してしまった所の修正にはとても便利です。わざわざ打ち直さなくてもよさそうですね。
ほんとにありがとうございました。

お礼日時:2008/02/03 04:14

#02です


>隣のセルにフリガナを転記してるのですが
そのセルにTextBox2の内容を書き込めば良いのではありませんか?

もし漢字で入力した値の「ふりがな」もTextBox2の値にしたかったら、フォームで入力した内容を「転記」する際に

 Target.Value = UserForm1.TextBox1.Text ’漢字表記を転記
 Target.Phonetic.Text = UserForm1.TextBox2.Text ’漢字表記にふりがなを設定
 Target.Offset(,1).Value = UserForm1.TextBox2.Text '隣のセルにふりがなを転記

を追加すればよいでしょう。(書き込むセルは「Target」で表しています)
    • good
    • 0
この回答へのお礼

ありがとうございます。
いろいろ勉強になります。
まだまだ勉強不足でほかの方が作成したものを数カ所変更して使用している段階ですので、こうすればいいんじゃないかというような発想は全くでてきませんでした。これからもっと勉強します。

試してみました。APIという方法でフリガナをふっていましがこちらの方法の方がわかりやすいです。

どうもありがとうございました。

お礼日時:2008/02/02 17:48

Private Sub CommandButton1_Click()


  行 = ActiveCell.Row
  列 = ActiveCell.Column
  With Cells(行, 列 + 2)
    .Value = TextBox1.Text
    .Phonetics.Delete
    .Phonetics.Add 1, Len(.Value), TextBox5.Value
    End With
  Cells(行, 列 + 3).value = UserForm1.TextBox2.Value '会社名
  Cells(行, 列 + 4).value = UserForm1.TextBox3.Value 'その他
  Cells(行, 列 + 5).value = UserForm1.TextBox4.Value 'その他2
'必ず、プロパティは付ける事ですよ
End Sub

End Withが変なところ記述されていたので修正
    • good
    • 0
この回答へのお礼

ありがとうございます。
すばらしいです。できました。
これでフリガナの枠をなくすことができるうえ、漢字の部分だけで並び替えができるようになりました。

ほんとにありがとうございました。

お礼日時:2008/02/02 17:29

Private Sub CommandButton1_Click()


  行 = ActiveCell.Row
  列 = ActiveCell.Column
  With Cells(行, 列 + 2)
    .Value = TextBox1.Text
    .Phonetics.Delete
    .Phonetics.Add 1, Len(.Value), TextBox5.Value          End With
  Cells(行, 列 + 3).value = UserForm1.TextBox2.Value '会社名
  Cells(行, 列 + 4).value = UserForm1.TextBox3.Value 'その他
  Cells(行, 列 + 5).value = UserForm1.TextBox4.Value 'その他2
'必ず、プロパティは付ける事ですよ
End Sub
    • good
    • 0

ちょっとお試しください。

UserFormにTextBox1、TextBox2の二つのテキストボックスを貼り付けます。以下のマクロでTextBox1に入力したテキストのふりがながTextBox2に表示されます

Private Sub TextBox1_Change()
 TextBox2.Text = Application.GetPhonetic(TextBox1.Text)
End Sub

ただふりがなは「入力したとおり」にならない場合があります。
ですからTextBox2の方も表示しておいて、手で修正ができるようにしておけば良いですね

この回答への補足

ありがとうございます。
こちらの方法の場合、UserFormに入力したものをシートに転記した場合、表示されたフリガナも一緒に漢字のフリガナとして1つのセルに登録されるってことでしょうか?

補足日時:2008/02/02 16:45
    • good
    • 0

コマンドボタン(Commandbutton1)クリックで


アクティブシートのセルA1に名前とフリガナを設定する例です。


Private Sub CommandButton1_Click()
  With Range("a1")
    .Value = TextBox1.Text
    .Phonetics.Delete
    .Phonetics.Add 1, Len(.Value), TextBox2.Text
    End With
End Sub

因みに
>UserFormでTextBoxに名前を入力すると上のTextBoxにフリガナが自動で入力されるようになるまでは作成したのです

↑これは、API使用してのそれですか?
それともapplication.GetPhoneticメソッド?

この回答への補足

APIといった方法です。
今、下記の方法でコマンドボタン1のクリックにしてあります。

Private Sub CommandButton1_Click()
行 = ActiveCell.Row
列 = ActiveCell.Column
Cells(行, 列 + 2) = UserForm1.TextBox1.Value '氏名
Cells(行, 列 + 3) = UserForm1.TextBox2.Value '会社名
Cells(行, 列 + 4) = UserForm1.TextBox3.Value 'その他
Cells(行, 列 + 5) = UserForm1.TextBox4.Value 'その他2
Cells(行, 列 + 1) = UserForm1.TextBox5.Value 'フリガナ
UserForm1.TextBox1.SetFocus
Cells(行 + 1, 列).Select

End Sub

これをどのように変更したらいいのでしょうか?
無知で申し訳ありませんがよろしくお願いいたします。

補足日時:2008/02/02 16:30
    • good
    • 0

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


このQ&Aを見た人がよく見るQ&A