
No.4ベストアンサー
- 回答日時:
ローマ字→かな(カナ、半角カナ)変換を作ってみました。
変換部分より変換定義部分が長く、かなり長くなりました。質問内容から逸脱して、ローマ字文書を変換するVBAになった嫌いがあります。変換定義をシートに登録すれば、20行くらいで書けるようです。
=fncRomaji_To_Kana(A1,1) のようにして使います。A1はローマ字が入力されているセル、2つ目の引数は、
1:ローマ字部分を半角カタカナで表示
2:ローマ字部分を全角カタカナで表示
3:ローマ字部分を全角ひらがなで表示
IME2000の入力(Helpのローマ字とかな対応一覧)とほぼ一致した変換をします。(laなどを除外)
IMEにない入力も追加できます。(HWA=ふぁ など)
長いローマ字文書で試しましたが、長音(例:RO-MAとROMA)はしょうがないですかね(Excel2000)
下記を標準モジュールを挿入して貼り付けます。時間がたちましたが参考に回答します。何かの役に立つかもしれません。
Dim Ro(300) As String, Ka(300) As String 'ローマ字、カナ
Dim cot As Integer '変換する個数カウンタ
Dim elm As String '変換定義文字列
Dim rm As String, kn As String 'ローマ字の先頭、カナの先頭
Dim ps As Integer '変換しない箇所
Dim L As Integer, m As Integer 'カウンタ
Public Function fncRomaji_To_Kana(myRange As Range, chgMode As Integer)
Dim moji As String 'セルの文字
Dim pot As Integer '検索した位置
Dim okikae As String '置き換えるカナ文字
Dim okikaeTU As String '置き換えるカナ文字の『っ』
cot = 0
Call HenkanSet '変換定義を作成
moji = myRange
For L = 1 To cot '照合開始してカナに置き換え
pot = Kensaku(moji)
While pot > 0
Select Case chgMode
Case 1: okikae = StrConv(Ka(L), vbKatakana + vbNarrow): okikaeTU = Chr(175)
Case 2: okikae = StrConv(Ka(L), vbKatakana + vbWide): okikaeTU = "ッ"
Case 3: okikae = StrConv(Ka(L), vbHiragana + vbWide): okikaeTU = "っ"
End Select
moji = Left(moji, pot - 1) & okikae & _
Right(moji, Len(moji) - (pot + Len(Ro(L)) - 1))
If pot > 1 Then
Select Case Mid(moji, pot - 1, 1)
Case "N", "n", "N", "n"
Case Else 'N以外で前の文字が同一子音なら『っ』にする
If StrConv(Mid(moji, pot - 1, 1), _
vbUpperCase + vbNarrow) = Left(Ro(L), 1) Then
Mid(moji, pot - 1, 1) = okikaeTU '『っ』を調べる
End If
End Select
End If
pot = Kensaku(moji) '次の検索
Wend
Next
fncRomaji_To_Kana = moji
End Function
Public Function Kensaku(mj As String) 'テーブルのローマ字があるか調べる
Dim p As Integer '検索文字位置(ローマ字が大小文字、半角、かな、カナ、先頭大文字の組み合わせ)
p = InStr(mj, Ro(L))
If p = 0 Then p = InStr(mj, StrConv(Ro(L), vbLowerCase))
If p = 0 Then p = InStr(mj, StrConv(Ro(L), vbWide))
If p = 0 Then p = InStr(mj, StrConv(Ro(L), vbLowerCase + vbWide))
If p = 0 Then p = InStr(mj, StrConv(Ro(L), vbProperCase))
If p = 0 Then p = InStr(mj, StrConv(Ro(L), vbLowerCase + vbProperCase))
If p = 0 Then p = InStr(mj, StrConv(Ro(L), vbWide + vbProperCase))
If p = 0 Then p = InStr(mj, StrConv(Ro(L), vbLowerCase + vbWide + vbProperCase))
Kensaku = p
End Function
Public Sub HenkanSet() 'ローマ字とかなの対比テーブルを作る
Dim sDef As String '変換定義用文字列
sDef = "きKY0しSY0しSH2ちTY0ちCY0にNY0ひHY0ふFY0みMY0りRY0"
sDef = sDef & "ぎGY0じZY0じJY0ぢDY0びBY0ぴPY0てTH0ちCH2でDH0じJ_2"
Call MakeTable1(sDef, "ゃぃゅぇょ")
sDef = "うWH3くWH0すSW0とTW0ふFW0ぐGW0どDW0つTS3ふHW0ふF_3"
Call MakeTable1(sDef, "ぁぃぅぇぉ")
sDef = "KかきくけこSさしすせそTたちつてとNなにぬねのHはひふへほ"
sDef = sDef & "MまみむめもYやいゆえよRらりるれろWわいうえをGがぎぐげご"
sDef = sDef & "ZざじずぜぞDだぢづでどBばびぶべぼPぱぴぷぺぽ_あいうえお"
Call MakeTable2(sDef)
cot = cot + 1: Ka(cot) = "ん": Ro(cot) = "NN"
cot = cot + 1: Ka(cot) = "ん": Ro(cot) = "N"
End Sub
'『きゃ』や『くぁ』などの対比テーブルを作る。定義は4文字単位
Public Sub MakeTable1(iDef As String, Sokuon As String)
For L = 1 To Len(iDef) Step 4
elm = Mid(iDef, L, 4)
rm = Mid(elm, 2, 2): If Right(rm, 1) = "_" Then rm = Left(rm, 1)
kn = Left(elm, 1): ps = Val(Right(elm, 1))
For m = 1 To 5 'あ段からお段まで
cot = cot + 1: Ro(cot) = rm & Mid("AIUEO", m, 1)
Ka(cot) = kn
If m <> ps Then 'ゃぁなどを付ける
Ka(cot) = Ka(cot) & Mid(Sokuon, m, 1)
End If
Next
Next
End Sub
'『あ』や『が』などの対比テーブルを作る。定義は6文字単位
Public Sub MakeTable2(iDef As String)
For L = 1 To Len(iDef) Step 6
elm = Mid(iDef, L, 6)
rm = Left(elm, 1): If rm = "_" Then rm = ""
For m = 1 To 5 'あ段からお段まで
cot = cot + 1: Ro(cot) = rm & Mid("AIUEO", m, 1)
Ka(cot) = Mid(elm, m + 1, 1)
Next
Next
End Sub
No.3
- 回答日時:
範囲を指定して 編集→置換でやるしかないと思います
私の場合 例えばB列にフリガナがある場合B列をシート2にコピーして、シート2で置換した後、シート1の元の場所に再コピーします(これは値のみにします)
「あ~ん」まで約40位ですが力業でやっちぃます。
No.2
- 回答日時:
>Excelのデータをアルファベット表示からカナ表記に変える方法
質問の意味が良くわからないんですが、
1.Aa→エー、Bb→ビー・・・、1→イチ・・・100→ヒャク こういうことでしょうか
ソートするとR(アール)などは最初にきてしまいますが・・・
2.ローマ字をカナに変える?数字は?
例)ROMU→ロム。
3.英単語をカナ(いわゆる日本語読み?)に変える?数字は?
例)ROM→ロム
いずれにしても、関数で単純にはできないでしょう。
1なら置き換えでもできそうですが。(何か違ってそうですね)
もう少し質問の詳しい内容と、どんなデータかが判明すれば何か方法があるかもしれません。(使用されているExcelのバージョンも)
また、インポートしたデータらしいので、振り仮名情報が無いはずなのでエクセルで振り仮名を設定(Excel2000 VBA)して、振り仮名と元の文字でソートすれば違った結果になるかもしれません。
No.1
- 回答日時:
アルファベット表示というのは、
ローマ字で入力されているということでしょうか?
少なくともExcelではそのような関数はなかったはずです。
「ほかのアプリケーション」の方で対応出来ないとしたら、
フリーソフトでテキスト変換ソフトがありますので
テキスト形式で保存して試してみてはいかがでしょう。
参考URL:http://www.vector.co.jp/vpack/filearea/win/util/ …
この回答への補足
ありがとうございます。
住所録のデータをエクセルにインポートしたのですが、一部の読み仮名のデータがローマ字で表記されてしまったのです。他のデータともあわせて使いたいため、50音で並べ替えをしようと思ったときに、アルファベット順で並ぶものとあいうえお順で並ぶものとで分かれてしまいます。
全てのデータを50音で並べ変えたいため、ローマ字を仮名に変えたいとおもったのです。
説明が上手じゃなくてすみません!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excelの並び替え(先頭の文字以外を基準に並び替えたい) 3 2023/07/07 22:21
- Visual Basic(VBA) EXCEL VBAで教えてください。 1 2022/12/22 04:20
- Access(アクセス) Access2016でフォーム内にExcelの複数シートを 表示させるイメージで複数テーブルの デー 1 2022/11/25 15:30
- Excel(エクセル) Excelの機能に関してです ドロップダウンリストをB3セルに設定します 元データはB3~B1000 2 2023/07/22 09:20
- Excel(エクセル) iphonからone driveに保存してあるExcelを閲覧すると表示の仕方がちがうデータ 2 2022/12/21 13:51
- C言語・C++・C# C言語プログラム変更 2 2022/12/21 15:03
- Excel(エクセル) 【エクセル】並び替えからの並び替え方法 7 2022/07/22 09:46
- Excel(エクセル) 【至急 詳しい方教えて下さい】Excelの表を変換したい 6 2022/04/21 18:35
- Excel(エクセル) Excelで日付のグラフへの表示 2 2022/04/15 11:04
- その他(教育・科学・学問) 教えてください!!! 1 2022/04/30 17:08
このQ&Aを見た人はこんなQ&Aも見ています
-
ローマ字→カタカナへ変換(エクセルで)
Excel(エクセル)
-
エクセルシートのローマ字をひらがなにしたい。
Excel(エクセル)
-
Excelでローマ字をカナに変換させる方法
Excel(エクセル)
-
-
4
カタカナをローマジに変換する。
Visual Basic(VBA)
-
5
VBAでカタカナ→ローマ字の変換を標準モジュールでどのように貼り付けしたらいいか教えてください
Visual Basic(VBA)
-
6
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
7
名簿の漢字名を関数で半角カナ文字にすることは可能でしょうか?
Excel(エクセル)
-
8
エクセルのPHONETIC関数(もしくはマクロ)で一括してフリガナ変換をしたい。
Access(アクセス)
-
9
IF関数で空欄(")の時、Nullにしたい
その他(Microsoft Office)
-
10
excel 2010で数字にふりがなを付けたい。
その他(Microsoft Office)
-
11
VLOOKUP関数を使用時、検索する値は昇順に並べ替える必要がありますか。
Access(アクセス)
-
12
Excel。英数字カタカナ混ぜこぜのセルで、カタカナのみ全角にする方法は?
Windows 95・98
-
13
アルファベットの会社名のふりがなの書き方を教えてください。
日本語
-
14
エクセルファイルを開く時、常に同じシートから開くようにするには?
Windows Vista・XP
-
15
O(オー)と0(ゼロ)の表記
その他(ソフトウェア)
-
16
エクセルのデータにふりがなを付けたい(英字・漢字・カナを含む)
その他(Microsoft Office)
-
17
エクセルでアルファベットか数値の判定をしたいのですが
Excel(エクセル)
-
18
OUTLOOK ハイパーリンク返信時に半角が全角になってしまう
Outlook(アウトルック)
-
19
半角カタカナをヘボン式ローマ字に変換する方法について
Excel(エクセル)
関連するカテゴリからQ&Aを探す
今、見られている記事はコレ!
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
-
なぜ批判コメントをするの?その心理と向き合い方をカウンセラーにきいた!
今や生活に必要不可欠となったインターネット。手軽に情報を得られるだけでなく、ネットを介したコミュニケーションも一般的となった。それと同時に顕在化しているのが、他者に対する辛らつな意見だ。ネットニュース...
-
大麻の使用罪がなかった理由や法改正での変更点、他国との違いを弁護士が解説
ドイツで2024年4月に大麻が合法化され、その2ヶ月後にサッカーEURO2024が行われた。その際、ドイツ警察は大会運営における治安維持の一つの方針として「アルコールを飲んでいるグループと、大麻を吸っているグループ...
-
ピンとくる人とこない人の違いは?直感を鍛える方法を心理コンサルタントに聞いた!
根拠はないがなんとなくそう感じる……。そんな「直感がした」という経験がある人は少なくないだろう。ただ直感は目には見えず、具体的な説明が難しいこともあるため、その正体は理解しにくい。「教えて!goo」にも「...
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「つ」のローマ字表記は「tu」...
-
アルファベットの会社名のふり...
-
斉藤は、Saito? Saitou? Saitoh?
-
「りょう」のローマ字表記を教...
-
時間表記hour等の正しい省略表...
-
ローマ字で「しょう」は「SYO」...
-
どっちが正しいのですか?
-
苗字の書き方
-
みゆうはローマ字でMiyuなんで...
-
ローマ字で名前「こうき」はど...
-
ゆうまをローマ字で書くと
-
googleアカウントのアイコンを...
-
ローマ字の筆記体の書き方教え...
-
Excelで英数字をカナに変換する...
-
日本円の英文字貨幣単位JPYとYE...
-
ローマ字で「ケンイチ」と書く...
-
名前のローマ字表記について。
-
子供の名前、ローマ字だとどう...
-
はじめまして。つまらない質問...
-
初めまして^_^ 英語が得意な方...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「つ」のローマ字表記は「tu」...
-
アルファベットの会社名のふり...
-
斉藤は、Saito? Saitou? Saitoh?
-
ローマ字で「しょう」は「SYO」...
-
「りょう」のローマ字表記を教...
-
時間表記hour等の正しい省略表...
-
どっちが正しいのですか?
-
暗号解読
-
「じょう」をローマ字で書くと
-
太田、大島、大谷、大野・・・...
-
ありがとう
-
名前のローマ字表記について。
-
みゆうはローマ字でMiyuなんで...
-
googleアカウントのアイコンを...
-
ローマ字で「ケンイチ」と書く...
-
TOEICの受験票の署名欄
-
ローマ字で名前「こうき」はど...
-
ローマ字で「りょうへい」は?
-
ん 小文字打ち方
-
日本円の英文字貨幣単位JPYとYE...
おすすめ情報