[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『ふりがなの表示→ふりがなの編集 を行いたい』(小鳥)
Webなどから取得した文字データに、マクロでふりがなを表示したいです。
手動の場合の操作は下記です↓
・セルを選択して、単純に「ふりがなの表示」ボタンを押す
↓(当たり前ですが)何も表示されない
・セルを選択して「ふりがなの編集」ボタンを押す
↓候補(と思われるフリガナ)が表示される
・他のセルを選択する
を行うと、一文字も入力せずに(今のところ)正しいフリガナが取得できたので、これをマクロで実行したいです。
調べてみると「Selection.SetPhonetic」で可能とのことだったので、
試してみたのですが、下記結果となります。
「1番田中太郎」:「バン タナカ タロウ」
単語ごとにフリガナがふられたということですね。(数字は無視されます。)
手動で行った場合は、一つの単語と認識されるようで下記結果になります。
「1番田中太郎」:「1バンタナカタロウ」
こちらの結果をマクロで得る方法はあるのでしょうか?
ご存知の方がいらっしゃれば教えて頂きたいです。
よろしくお願いします。
< 使用 Excel:unknown、使用 OS:unknown >
Option Explicit
Sub test()
Dim Phone As String
Phone = Application.GetPhonetic(Selection.Value) Selection.Characters(1, Len(Selection)).PhoneticCharacters = Phone Selection.Phonetics.Visible = True
End Sub
(虎) 2019/05/21(火) 11:44
上記サイトでGetPhoneticが使えなくなったと書いてあり、現に私のところ(Windows10(64)+Excel2010(32))では GetPhoneticは""を返しているがそちらでは使えているだろうか? もし使えているのであればOSとExcelのバージョンは何だろうか? (ねむねむ) 2019/05/21(火) 11:59
ねむねむさん、ありがとうございます。 まさにそのサイトを見ながらコーディングしていたのですが、使えなくなったの件は目に入ってませんでした(^^;
こちらは、Windows7+Excel2010です。 一応上記コードでテストして、GetPhonetic使えてるんですが…。 (虎) 2019/05/21(火) 12:07
となるとOSで使える・使えないということだろうか。 質問者のOSは何なのだろうか? (ねむねむ) 2019/05/21(火) 12:30
OSはWindows10で、エクセルも2010です。
ねむねむさんと同じですね。
虎さんの提供して下さったコードは、
ふりがなを表示したいセルを選択した状態で、マクロを実行で良いですよね?
そうすると
「実行時エラー'1004' 'GetPhonetic'メソッドは失敗しました。'_Application'オブジェクト」
と表示されるので、やはりOSが問題なのでしょうか…。
他にWindows10でも可能な方法は何かありそうでしょうか?
(小鳥) 2019/05/21(火) 13:16
虎さんのコードは一つのセルだけを対象にするものだが一つのセルだけを選択した状態で実行しているだろうか? (ねむねむ) 2019/05/21(火) 13:21
「実行時エラー'1004' 'GetPhonetic'メソッドは失敗しました。'_Application'オブジェクト」 提示されてコードで複数セルを選択したのでは
Sub test()
Dim Phone As String Dim c As Range
For Each c In Selection Phone = Application.GetPhonetic(c.Value) c.Characters(1, Len(c.Value)).PhoneticCharacters = Phone c.Phonetics.Visible = True Next End Sub
Win10 Excel2013
(ピンク) 2019/05/21(火) 13:27
ちょっとわからない状況になった。 確かに午前中はイミディエイトウィンドウに ?application.GetPhonetic(range("A1")) と入力してEnterで何も表示されていなかった(A1セルに文字入力あり)が午後になってから実行すると 振り仮名が表示されるようになった。
(ねむねむ) 2019/05/21(火) 13:32
午前と午後で何か変わったかというのも思い浮かばず・・・ (ねむねむ) 2019/05/21(火) 13:33
複数選択の場合はピンクさんのコードで上手くいきました。
おかげさまで、作業が進みそうです。
大変助かりました、3人とも本当にありがとうございました。
(小鳥) 2019/05/21(火) 13:42
ふしぎですねぇ…。でも、解決したようでなによりです(^^) (虎) 2019/05/21(火) 14:20
Sub test2() Dim c As Range With ActiveWindow.RangeSelection For Each c In .Cells .Phonetic.Text = Application.GetPhonetic(c.Value) Next .Phonetics.Visible = True End With End Sub 参考までに。 (Windows7(64)+Excel2010(64))
(チオチモリン) 2019/05/21(火) 17:21
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.