No.1ベストアンサー
- 回答日時:
>テキストファイルを読み込む
なので、読み込んだデータの Phonetic.Text は登録されていません。
ActiveCellに「佐藤」という漢字があるとき
Msgbox Activecell.Phonetic.Text
で確認すると、「佐藤」がそのまま表示されると思います。
漢字からフリガナを取得するには、以下のようにします。
Msgbox Application.GetPhonetic(Activecell.Value)
すると「サトウ」が取得できます。
ただしGetPhonetic関数で取得できるよみがなは、必ずしも正しいとは限りません。それぞれの漢字の一般的なよみがなを使用するからです。
その点はご承知置きください
回答ありがとうございます。
GetPhoneticを使ってセルに入力されたよみがなを入手する方法は以前から知っていました。
>Msgbox Activecell.Phonetic.Text
>で確認すると、「佐藤」がそのまま表示されると思います。
まさにこのケースの時です。知りたいのは。
No.5
- 回答日時:
こんにちは。
以下は、単なるお遊びマクロです。
作ってみてわかるのは、やはり、本来、正規表現置換を利用し、文章を分解しなくてはならいのですが、前回書いたように、VBAの領分ではなさそうな気がしてきますね。変換されたものは、全部、全角になってしまいます。
なお、GetPhonetic は、単語の変換ではなく、文章の変換をさせることで、ヒット率は上がります。それは、GetPhonetic 自体に文節の構造を把握する機能があると聞きます。
Sub ConvertKatakana()
Dim Fname
Dim FNo As Integer
Dim TextLine As String
Dim Buf As Variant
Dim BufLine As Variant
Dim Fso As Object
Dim f As Object
Dim mPath As String
Fname = Application.GetOpenFilename("Text ファイル(*.txt),*.txt")
If Fname = "False" Then
Exit Sub
End If
FNo = FreeFile()
Open Fname For Input As #FNo
Do Until EOF(FNo)
Line Input #FNo, TextLine
If Len(TextLine) > 0 Then
Buf = ConvertTxt(TextLine)
End If
BufLine = BufLine & Buf & vbCrLf
Buf = ""
Loop
Close #FNo
Set Fso = CreateObject("Scripting.FileSystemObject")
mPath = Mid(Fname, 1, InStrRev(Fname, "\"))
Fname = Mid(Fname, InStrRev(Fname, "\") + 1)
'出力名は、ファイル名の前に、'h' を付ける
'同名ファイルは削除
If Dir(mPath & "h_" & Fname) <> "" Then
Kill mPath & "h_" & Fname
End If
Set f = Fso.CreateTextFile(mPath & "h_" & Fname, 2, True)
f.Writeline (BufLine)
f.Close
Set Fso = Nothing
End Sub
Function ConvertTxt(strTxt As Variant)
Dim v As Variant
v = Application.GetPhonetic(strTxt)
'v = StrConv(v, vbHiragana) 'ひらがなの場合
ConvertTxt = v
End Function
No.4
- 回答日時:
こんにちは。
>漢字から自動的にカナに変換したいのです。
ご質問には、最終的な目的が書かれていませんので、ご自身の技術の向上なら、zap35さんの提供されたコードを応用していけばよいと思います。しかし、業務や仕事の話としては、ご質問のカテゴリが違うような気がします。
VBAとおっしゃっていますが、とても、VBAごときでは太刀打ちできない世界だと思います。漢字かな混じり文をひらがな変換にするプログラムは、視覚障害者用の点字タイプに使用するものや、ローマ字変換プログラムなどに応用されていますが、最近では、インターネット検索にも応用されています。そのまま、ひらがなに変換したところで、それでは、読めたものではないからです。
VBA/VBでできないとは言っていませんが、本格的なものと比較すると、単なる真似事になってしまいます。理由は、MS-IMEの機能をAPIで抜き出しているからで、修正機能も分かち書き機能もないからです。
専門的に行うには、有名なのは、Unix 系(Win可能)KAKASI(kanji kana simple inverter) とか、いうものがあります。やる気になれば、可能だと思いますが、大きなプログラムなど入れなくてはならないとかなると、ちょっと面倒かなって思います。
http://kakasi.namazu.org/
応用したものに、ひらがなゲートウェアというものもあります。
http://www.hiragana-gateway.com/
それと、私の記憶では、障害者用のシステムでは、富士通が専門だったと思います。
そういうものが使える環境ならば使っています。
職場で使うのですが、業務で使うには違いませんが、一般業務用というよりは自分の仕事の効率化に使います。
職場のセキュリティ上の理由により、新たなソフトのインストールは禁止されています。
USB、CD、FDDなどの媒体の接続およびインターネット接続も禁止されています。
Officeソフト、エディター、メインフレーム端末ソフト、ロータスノーツが使えるだけです。
メインフレームの言語は自由に使えますが、PCで使用が許されているプログラム言語はVBAだけです。
本来VBAでやることではないかも知れませんが、これしか選択肢がありません。
今回の漢字からの変換、100パーセントの正確性は求めていません。
違っている部分はあとでマニュアルで修正するつもりです。
No.3
- 回答日時:
#01です
>漢字から自動的にカナに変換したいのです。
ならばGetPhonetic関数で取得したよみがなを、どこかのセルに書き込めば良いだけではありませんか? #02の回答にも類似サンプルは書きましたよ(^^;
テキストを読み込むVBAがお書きになれるレベルの方のようですから、どこが分からないのでしょうね? 補足回答が全く補足になっていません
例えばA列にテキストを読み込んだ文字列があるとき、B列にふりがなを表示させるならこんなマクロでもできます。シートの構成が分かりませんので後はご自身で工夫してください。
Sub Macro1()
Dim r As Range
For Each r In Range(Range("A1"), Range("A65536").End(xlUp))
r.Offset(0, 1).Value = Application.GetPhonetic(r.Value)
Next r
End Sub
回答ありがとうございます。
どうも私が勘違いしていたようです。
セルのよみがな取得はタイプ入力したものだけができるものと思い込んでいました。
テキスト入力したものをセルに書き込んで、Application.GetPhoneticで入手できるんですね。
理解不足でご迷惑をおかけしました。
No.2
- 回答日時:
#01です。
補足回答を拝見して意味が分からなくなりました
>>で確認すると、「佐藤」がそのまま表示されると思います。
>まさにこのケースの時です。知りたいのは。
このケースの時にGetPhonetic関数を用いて「サトウ」を取得することが目的ではないのですか? では何をされたいのでしょう??
もしふりがなが登録されていないセルにGetPhonetic関数で取得したふりがなを登録したいなら
Activecell.Phonetic.Text = Application.GetPhonetic(Activecell.Value)
元のセルの値をふりがなに置き換えるなら
Activecell.Value = Application.GetPhonetic(Activecell.Value)
のようにできますが…
ただし元のセルをVBAで直接ふりがなに置き換えてしまうと、やり直しが利きませんから、シートをコピーしてから実行するようにするのがよいと思います。
言葉足らずですいません。
セルにふりがなをつけたり取得したりするのが目的ではありません。
テキストファイルで漢字入力されたものをカナに変換するのが目的です。
入力データは大量にありますので、漢字から自動的にカナに変換したいのです。
よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(悩み相談・人生相談) 流暢に話すテキスト読み上げアプリ 1 2023/07/23 20:41
- Visual Basic(VBA) VBAで出力したCSVファイルの先頭にカンマを挿入したい 5 2022/10/14 12:20
- Excel(エクセル) エクセルのVBAについて とあるサイトのコードを参考に、CSVの文字化けを直すVBAを作成しているの 7 2022/11/04 14:15
- Excel(エクセル) EXCELで、漢字のみ抽出する式を教えてください。 6 2022/04/27 14:40
- Visual Basic(VBA) VBA 「,」・空白・カタカナ等の複数条件のマクロ 2 2023/08/23 11:57
- その他(パソコン・スマホ・電化製品) スマホで検索について 3 2022/06/06 09:21
- 教育・学習 漢字アプリ 読めない漢字を手書き入力して、読み方を学べるアプリをご存知のかた 教えて下さい。 無料だ 4 2022/04/23 07:59
- Visual Basic(VBA) Excel VBA 教えてください。 VBA初心者です。 詳しい方がいましたら教えてください。 下記 3 2023/04/25 11:22
- Visual Basic(VBA) エクセルVBAでメールの自動作成の モジュールを作ったのですが、txtファイルから読み込んだ本文が文 2 2022/07/20 15:01
- デスクトップパソコン 40年間の悩み キーボードにおいて初期値として漢字ローマ字変換に設定する方法 8 2023/05/08 14:50
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
excel 漢字→平仮名 一括変換
-
wordの変換でエンター2回押さな...
-
漢字辞書で「神崎」さんの「崎...
-
部首が禾の橋(はし)について
-
「くるみ」という漢字、一文字...
-
JIS第三、第四水準の漢字は入力...
-
『開』の旧字体
-
沢山のフォルダを普通に名前順...
-
「律」のぎょうにんべんが無い文字
-
漢字や単語の予測変換って,AI、...
-
人名で「く」に似た漢字を教え...
-
過った、はなんと読みますか?
-
漢字ファイル名の並べ替えがで...
-
特殊漢字の入力方法について
-
『攻撃を 「かわす」 』 ←何...
-
まだれへんを出すには?
-
「ありがとう」って普通ひらが...
-
篆書体を教えて下さい。
-
「ゑ」ってひらがなですか?
-
エクセルのデータにふりがなを...
おすすめ情報