[[20230927155129]] 『Selection.SetPhonetic を使ったマクロで「ひらが』(yamatda2001) ページの最後に飛ぶ

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

 

『Selection.SetPhonetic を使ったマクロで「ひらがな」を表示したい』(yamatda2001)

いつも大変お世話になっております。

食品原材料のアレルゲンをメインとした一覧表をテーブル形式で作成しています。
現在A1からDO525まで使用していて今後も原材料増加の度に行は増えます。

A列には保管場所が8種類ほど入っていてこれをキーに保管場所ごとに
フィルターをかけることを考えています。

かなり列数が多いですがアレルゲン以外のデータも入っていて
現場で必要なデータ以外は非表示にして出力する予定です。

最終的には

 1 C        F          N      BUからCV(アレルゲン28種) DO 
 2 保管場所 原料コード 材料名 卵からゼラチン該当に●印 ふりがな

と印刷用に出力します。

また現場作業者が見つけ易いようDO列のふりがなについては
保管場所でフィルターかけたあと昇順に並べかえたいと考えてます。

材料名については他の表からコピペしたものがほとんどで
一部手打ちで入力したものもあります

そこでまずDO列のデータにふりがなを表示したく
https://hamachan.info/excel/hurigana.html
上のサイトを参考に

標準モジュールに

Sub ふりがな()
Selection.SetPhonetic
End Sub
を記載し
DOのふりがな列には
=PHONETIC([@材料名])
とし、ホームタブの「ふりがなの設定」から種類「ひらがな」のラジオボタンに
チェックをいれました。

そして材料名の列を選択し上記マクロを実行しましたが
期待していた動き

材料名 ふりがな
濃厚トマトソース のうこうとまとそーす
ではなく
濃厚トマトソース ノウコウトマトソース

となってしまいます。

ただし
(N)業務用あごだし顆粒→(N)ぎょうむようあごだしかりゅう
といったようにひらがなに変換されているレコードも10個ほど出てきました。
※ソートで "(" の材料が上に来てしまいますがそれは構わないことにしています。

ふりがな(フリガナ)に変換できているということからマクロとしては
機能しているようですが挙動がどうも不明瞭です。

なにか大きな間違いをしているのでしょうか?

※最終的には「ふりがな」列に「ひらがな」を表示できれば良いので

  代替え案等もあればご教示願えれば幸いです。

< 使用 Excel:Excel2019、使用 OS:Windows10 >


A列には保管場所が8種類ほど入っていてこれをキーに保管場所ごとに
フィルターをかけることを考えています。


C列には・・・
でした
(yamatda2001) 2023/09/27(水) 16:40:08


>ホームタブの「ふりがなの設定」から種類「ひらがな」のラジオボタンにチェック
この設定はそれぞれのセル全てでしないといけないですけど、できてますか

それもマクロ化して

 Sub ふりがな()
    Selection.SetPhonetic
    Selection.Phonetics.CharacterType = xlHiragana
 End Sub
としたらいいとおもいます
(ゴズ) 2023/09/27(水) 17:08:56

(ゴズ)さんありがとうございます。

>ホームタブの「ふりがなの設定」から種類「ひらがな」のラジオボタンにチェック
この設定はそれぞれのセル全てでしないといけないですけど、できてますか

できてませんでした・・。

材料名の列に上記設定をいれてもともとのマクロで期待していた動きしました。

また(ゴズ)さんの記載されたマクロでも期待していた動き確認できました。

この度はありがとうございました。
(yamatda2001) 2023/09/27(水) 18:38:48


問題は解決して
質問の便乗になってしまい大変恐縮なんですが

PHONETIC関数

ってどうやってふりがな変換しているのでしょうか?

もともと入力したキーから変換しているののかなとも思いましたが
今回のように他のデータ(表)からコピペしたものはそういったキー入力参照できないと思うので。
・MSが変換ディクショナリーもってる?
・ネット通じて検索、変換している?

後学までに教えていただければ幸いです。

(yamatda2001) 2023/09/27(水) 18:44:48


それがわかっているのは、マイクロソフトの開発の中の人だけだと思います
なので、確定的な情報は誰も知りません
で、完全に当て推量ですが、MS-IMEの再変換機能を利用して、漢字→かな変換をしているのかなと。
(ゴズ) 2023/09/27(水) 19:15:37


それは大きな間違いです。
>どうやってふりがな変換しているのでしょうか?
入力(やまだたろう)変換(山田太郎)確定とします。
フリガナの表示をクリック。
|やまだたろう|
|山田太郎 |
ふりがなが振られた表示になるはずです。
PHONETIC関数はこれを表示しているだけです。

(IT) 2023/09/27(水) 20:20:09


Selection.SetPhonetic
は必要ありません。
(?) 2023/09/27(水) 20:37:53

(?)さん
もともとの質問のほうでしょうかね?

Selection.SetPhonetic
は必要ありません。

興味あっていろいろためしてみました。
直接セルに文字列入力→ひらがな変換可
他の(社内メールで送られてきた)エクセルファイルの文字列コピペ→変換不可
同じブックの他のシートの文字列コピペ→変換不可
同じブックの同じシートの文字列コピペ→カタカナ変換
コピー可能なPDFドキュメントからのコピペ→変換不可

いずれも材料名にペーストして
=PHONETIC([@材料名])
のはいったふりがな列の反応をみたものです。

で(ゴズ)さんにご教示頂いたマクロでひらがな変換できました。

なんかよくわかりませんが
もしかして私、頓珍漢な言ってます?

(yamatda2001) 2023/09/27(水) 21:07:27


 >質問の便乗になってしまい大変恐縮なんですが
 >PHONETIC関数
 >ってどうやってふりがな変換しているのでしょうか?

 質問文がおかしくないですか?
 「SetPhonetic メソッドはどんな仕掛けで、フリガナ情報がない漢字のフリガナを決めているのか?」
 ではないですか?

(半平太) 2023/09/27(水) 21:13:40


失礼しました。
作成ではなく表示でしたね。
(?) 2023/09/27(水) 21:40:16

(半平太)さん
ありがとうございます。

そうですね

>「SetPhonetic メソッドはどんな仕掛けで、フリガナ情報がない漢字のフリガナを決めているのか?」

という質問文が正しいですね。
私が上にかいた数少ない試行もそれを確認したかったためでした、

(yamatda2001) 2023/09/28(木) 04:29:30


>という質問文が正しいですね。
のことだったら「それは大きな間違いです。」は取り下げます。

(IT) 2023/09/28(木) 08:45:16


 Range.SetPhonetic とか Application.GetPhonetic の機能を確かめる為、
 今改めて実験してみましたが、むかし得た知識とはかなり変遷していました。

 参考サイトですが、少し古いです。・・が、頭を整理する助けにはなります。
  ↓
 【GetPhoneticメソッドとSetPhoneticメソッド(フリガナ)】
https://excel-ubara.com/excelvba1/EXCELVBA404.html
 ※アップデートされている説明もありますが、現状に合っていない箇所もあります。
  今後も変わって行くかも知れません。我ら一般ユーザーは右往左往するだけです。

 一つの漢字が幾通りにも読める言語では、こう言う機能に正確性を期待するのは無理があります。
 あくまで一時しのぎの機能と考えた方がいいような気がします。
 厳密性が要求される作業では、ちゃんと入力なり、目視なりして、
 正確なフリガナを付けるべきなんでしょうね。

(半平太) 2023/09/28(木) 09:45:24


(半平太)さん
ありがとうございます。
やはり返されたふりがなについては慎重に確認したほうがいいですね。

皆様方今回も私のつたない質問にお付き合いいただきありがとうございました。

大変勉強になりました。
(yamatda2001) 2023/09/29(金) 14:39:35


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.