[[20190521102618]] 『ふりがなの表示→ふりがなの編集 を行いたい』(小鳥) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『ふりがなの表示→ふりがなの編集 を行いたい』(小鳥)

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


http://officetanaka.net/excel/vba/tips/tips49.htm

 上記サイトで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.