
エクセル等で作成したリストで、名前や会社名などを自動変換でふりがなを付けるにはどのようにしたら良いか教えてください。
・英字、カタカナ、漢字が含んでいる
・エクセルのふりがな機能ではなく、別のセルで表示する
・マクロやフリーソフトなどで、一括して変換できる
例) ABC田中ファイナンス → エービーシータナカファイナンス
以下のURLを参照していたのですが、マクロ等の知識がないためうまく出来ません。
漢字→カタカナ、英字→カタカナは以下のURLで出来ましたが、漢字や英字が含まれると
上記例のように変換できず困っています。
・http://ameblo.jp/myamya3365/entry-11508546288.html
・http://oshiete.goo.ne.jp/qa/1263072.html
・http://q.hatena.ne.jp/1172632091
恐れ入りますが、宜しくお願い致します。
No.2ベストアンサー
- 回答日時:
本来は、別の言語が得意とする分野ですが、残念ながら、Perl系は途中で挫折しましたので、詳しくは私は知りません。
たぶん専門のツールがあったような気がします。特に、視覚障害者用の点字変換ソフトには、この種の機能が備わっています。また、正規表現置換の分野ですから、く込みタイプライブラリを使えば、もう少しマシなコードになります。VBAは、ほんの真似事にしかすぎません。Windows版ソフト →ダブリュアイエヌディオウダブリュエスハンソフト
ということで、本来は、英語を読み下すための辞書が必要なのですが、膨大な大きさになってしまいます。
なお、漢字、英字、数字の間には、半角スペースを入れることは可能です。
例:
buf = buf & " " & Application.GetPhonetic(m)
のようにします。
マクロ名は、WordingMacro としました。読みをつけることを、英語で、Wordingといいますが、Wordの機能にあったような気がします。また、数字の読み下しには、桁を入れた別の読み方があります。
私は、ローマ字変換を作ったことがありますが、今回は、リンク先のマクロは、参考にさせていただきました。
範囲を選択してから、実行してください。
'//
'Option Explicit
Const strAlphaTarget As String = "abcdefghijklmnopqrstuvwxyz"
Const strAlphaYomi As String = "エイ,ビー,シー,ディ,イー,エフ,ジー,エイチ,アイ,ジェイ,ケイ,エル,エム,エヌ,オウ,ピー,キュウ,アール,エス,ティ,ユウ,ブイ,ダブリュ,エックス,ワイ,ゼット"
Const strNumTarget As String = "0123456789"
Const strNumYomi As String = "ゼロ,イチ,ニ,サン,ヨン,ゴ,ロク,ナナ,ハチ,キュウ"
Dim alphaAr As Variant
Dim numAr As Variant
Function Alpha2KaNa(ByVal strTxt As String)
Dim buf As String
Dim i As Long, j As Long
Dim etx As Variant
strTxt = StrConv(strTxt, vbNarrow + vbLowerCase)
If IsEmpty(alphaAr) Then
alphaAr = Split(strAlphaYomi, ",")
End If
For i = 1 To Len(strTxt)
etx = Mid(strTxt, i, 1)
If etx Like "[a-z]" Then
j = Asc(etx) - 97
buf = buf & alphaAr(j)
End If
Next i
Alpha2KaNa = buf
End Function
Function Num2Kana(ByVal strTxt As String)
Dim buf As String
Dim i As Long
Dim etx As Variant
strTxt = StrConv(strTxt, vbNarrow + vbLowerCase)
If IsEmpty(numAr) Then
numAr = Split(strNumYomi, ",")
End If
For i = 1 To Len(strTxt)
etx = Mid(strTxt, i, 1)
If etx Like "[0-9]" Then
buf = buf & numAr(CInt(etx))
End If
Next i
Num2Kana = buf
End Function
Sub WordingMacro() '実行プログラム
'No. 9012486
Dim strTxt As String
Dim rng As Range
Dim c As Variant
Dim Matches As Object
Dim m As Variant
Dim tx As String
Dim buf As String
With CreateObject("VBScript.RegExp")
.Pattern = "[一-龠]+|[\d0-9]+|[A-Za-z]+|[ぁ-んァ-ヶ]+|[ ー]"
.Global = True
.IgnoreCase = False
'変換する範囲を選択してください
If TypeName(Selection) <> "Range" Then Exit Sub
Set rng = Selection
For Each c In rng
If c <> "" Then
strTxt = c.Text
Set Matches = .Execute(strTxt)
For Each m In Matches
tx = StrConv(Mid(m, 1, 1), vbNarrow)
If Asc(tx) < 0 Then
buf = buf & Application.GetPhonetic(m)
ElseIf Asc(tx) < 58 Then
buf = buf & Num2Kana(m)
ElseIf Asc(tx) < 123 Then
buf = buf & Alpha2KaNa(m)
ElseIf Asc(tx) < 222 Then
buf = buf & StrConv(m, vbWide + vbKatakana)
Else
buf = buf & " "
End If
Next m
If Len(buf) > 2 Then
c.Offset(, 1).Value = buf
End If
buf = ""
End If
Next c
End With
End Sub
'///

長いコードを作成頂き誠に有難うございました。
私の希望に一番近く早速試させて頂き、問題なく動作致しました。
これで数千件あったリストがものの数秒で解決致しました。
改めて御礼申し上げます。
No.1
- 回答日時:
こんばんは!
一案です。
↓の画像のように別Sheetにアルファベットの読みの対応表を作成しておきます。
(画像ではSheet2に作っています)
そうした上でのVBAでの一例です。
A列データをB列に表示するようにしてみました。
標準モジュールにしてみてください。
Sub Sample1()
Dim i As Long, lastRow As Long, k As Long
Dim str As String, buf As String, c As Range, wS As Worksheet
Set wS = Worksheets("Sheet2")
With Worksheets("Sheet1")
lastRow = .Cells(Rows.Count, "A").End(xlUp).Row
With Range(.Cells(1, "B"), .Cells(lastRow, "B"))
.Formula = "=PHONETIC(A1)"
.Value = .Value
End With
For i = 1 To lastRow
For k = 1 To Len(.Cells(i, "B"))
str = Mid(.Cells(i, "B"), k, 1)
buf = UCase(StrConv(str, vbNarrow))
If buf Like "[A-Z]" Then
Set c = wS.Range("A:A").Find(what:=buf, LookIn:=xlValues, lookat:=xlWhole)
.Cells(i, "B") = Replace(.Cells(i, "B"), str, c.Offset(, 1))
End If
Next k
Next i
End With
End Sub
※ A列データは直接入力しているデータとします。
どこかのデータをコピー&ペーストしている場合、
漢字の読みがお望み通りにならないコトがあります。
まずはこの程度で・・・m(_ _)m

早速試させて頂きました。こちらのコードであれば、英字やカタカナだけでなくいろいろな置換が出来そうでかなり便利ですね。
早々にご回答頂き誠に有難うございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) EXCELでの文字・数字入力の基本について教えてください。 2 2023/05/29 23:17
- デスクトップパソコン 40年間の悩み キーボードにおいて初期値として漢字ローマ字変換に設定する方法 8 2023/05/08 14:50
- Visual Basic(VBA) Excel VBA 教えてください。 VBA初心者です。 詳しい方がいましたら教えてください。 下記 3 2023/04/25 11:22
- Excel(エクセル) エクセルの条件付き書式で*を使いたい 4 2022/05/13 16:49
- Visual Basic(VBA) VBA 「,」・空白・カタカナ等の複数条件のマクロ 2 2023/08/23 11:57
- Excel(エクセル) エクセルシート中の全角英数字を半角に変換したい 4 2022/07/07 13:14
- 中国語 新しい中国語入力ソフトを発明しました 22 2023/02/06 07:13
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/07/15 16:33
- その他(Microsoft Office) WordやExcelで英数字のみ半角または全角にしたい 6 2022/08/03 08:18
- その他(Microsoft Office) Microsoft IME 一発で変換できない言葉がある 3 2022/07/19 19:29
このQ&Aを見た人はこんなQ&Aも見ています
-
ショボ短歌会
ひどい短歌を詠んでください。
-
【お題】甲子園での思い出の残し方
【お題】「球場の砂を持って帰る」はもう古いと思った高校球児が、甲子園で負けた際に、思い出に残そうと思って行ったこと
-
最速怪談選手権
できるだけ短い文章で怖がらせてください。
-
一番好きなみそ汁の具材は?
みんなで大好きなみそ汁の具材について語り合おうよっ!
-
自分用のお土産
国内や海外に旅行へ行った時、自分用のお土産ってどれくらい買いますか?
-
アルファベットにフリガナ
Excel(エクセル)
-
Excelで英数字をカナに変換する方法は?
Excel(エクセル)
-
excel 2010で数字にふりがなを付けたい。
その他(Microsoft Office)
-
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・【お題】甲子園での思い出の残し方
- ・【お題】動物のキャッチフレーズ
- ・人生で一番思い出に残ってる靴
- ・これ何て呼びますか Part2
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・あなたが好きな本屋さんを教えてください
- ・かっこよく答えてください!!
- ・一回も披露したことのない豆知識
- ・ショボ短歌会
- ・いちばん失敗した人決定戦
- ・性格悪い人が優勝
- ・最速怪談選手権
- ・限定しりとり
- ・性格いい人が優勝
- ・これ何て呼びますか
- ・チョコミントアイス
- ・単二電池
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・泣きながら食べたご飯の思い出
- ・一番好きなみそ汁の具材は?
- ・人生で一番お金がなかったとき
- ・カラオケの鉄板ソング
- ・自分用のお土産
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
漢字辞書で「神崎」さんの「崎...
-
部首が禾の橋(はし)について
-
「くるみ」という漢字、一文字...
-
excel 漢字→平仮名 一括変換
-
wordの変換でエンター2回押さな...
-
「ゑ」ってひらがなですか?
-
『攻撃を 「かわす」 』 ←何...
-
漢字変換すると旧字体(?)ばか...
-
篆書体を教えて下さい。
-
エクセルVBAでテキストの漢...
-
『開』の旧字体
-
漢字の変換で困っています
-
まだれへんを出すには?
-
JIS第三、第四水準の漢字は入力...
-
エクセルのデータにふりがなを...
-
特殊漢字の入力方法について
-
iPadから容量の大きい動画をWin...
-
DVDstylerについて、容量をぎり...
-
動画を変換すると音声だけにな...
-
以下のフォントを探しています
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
excel 漢字→平仮名 一括変換
-
漢字辞書で「神崎」さんの「崎...
-
wordの変換でエンター2回押さな...
-
JIS第三、第四水準の漢字は入力...
-
「律」のぎょうにんべんが無い文字
-
『開』の旧字体
-
沢山のフォルダを普通に名前順...
-
特殊漢字の入力方法について
-
まだれへんを出すには?
-
部首が禾の橋(はし)について
-
「くるみ」という漢字、一文字...
-
過った、はなんと読みますか?
-
漢字や単語の予測変換って,AI、...
-
漢字ファイル名の並べ替えがで...
-
人名で「く」に似た漢字を教え...
-
「ありがとう」って普通ひらが...
-
『攻撃を 「かわす」 』 ←何...
-
ワープロ上級者の入力速度はど...
-
漢字の『物』の右側って一字で...
-
漢字の変換がおかしくなってし...
おすすめ情報