今だけ人気マンガ100円レンタル特集♪


 KOIZUMI→コイズミ
 ローマ字表記の氏名を カタカナ表記へ変換したい。
 良い手手立ては あるでしょうか。
 教えて下さい。

このQ&Aに関連する最新のQ&A

A 回答 (8件)

こんにちは。



これは、ユーザー定義関数というもので、標準モジュールに書くのは、もう既にお分かりになっているかと思います。そして、標準モジュールに貼り付けた後は、一般の関数と同じように使えます。(ただし、貼り付けたブックのみです)

ですから、この中身のコードは忘れてください。

http://park11.wakwak.com/~miko/Excel_Note/15-03_ …

ワークシートで使うときには、一般の関数のように、セル上に、
A1 に、ローマ字が入っているとしたら、

=roma2kana(A1)

だけで、よいのです。そうすると、カタカナになるように設定されています。

>◆私が何か勘違いしていること有るのだろうかと思ったりしています。

ご期待とは違うものであったりしませんか?その点は、大丈夫ですか?
    • good
    • 4
この回答へのお礼

完璧に多量のデータをカタカナに変換できました。
◆一般の関数と同じように、任意のブックで使用できるように出来るのでしょうか。

お礼日時:2005/07/15 07:21

#3 のWendy02 です。



>◆結果は満足ですが、「ひらがな」が出力されます。
>「カタカナ」を出力させる場合は何処を正せばいいのでしょうか?

それはヘンですね。コードを点検してみましたが、標準では、ひらがなにはなりません。

A1: ROMA

= roma2kana(A1)

と、標準で入れれば、上記のようにすれば、カタカナになります。

もし、ひらがなにするには、

= roma2kana(A1,False )

として、初めて、ひらがなになります。

この回答への補足

>A1: ROMA
>= roma2kana(A1)
◆Excelノート 15-03 セルのデータ
の57 ローマ字(アルファベット)をカタカナに変換するには?【http://park11.wakwak.com/~miko/Excel_Note/15-03_ …
ここのコードをチェックしましたが、ご指摘の(上記のコードが見あたりませんが・・・?
◆私が何か勘違いしていること有るのだろうかと思ったりしています。もう一度ご指摘下さい。

補足日時:2005/07/08 12:41
    • good
    • 2

こんにちは、#2,4です。


ご質問の件ですが、ATOKでは無理かもしれないです。
ATOK2005の体験版をダウンロードして試してみたのですが、アルファベット→カタカナの変換ができませんでした。
もしかしたら、他にやり方があるのかもしれないのですが・・・
一応、再変換は、シフトキー押しながら変換キーを押すと実行されるようなんですけどね。
漢字→アルファベットとかはできたんですが・・・
もし、自力の体力勝負をされるようでしたら、その時だけでもIMEに切り替えるしかなさそうです。
通常、削除しない限りは、日本語入力システムの切り替えでIMEに切り替え可能です。もし、消されてしまっていたら、Windows Updateからダウンロード可能です。
    • good
    • 0
この回答へのお礼

調査して頂いて感謝申し上げます。
MicrosoftIMEに切替えてみます。

お礼日時:2005/07/04 14:13

私の先ほど答えた質問の回答を使えないでしょうかね。


質問NO
No.1479198 に回答したが、
このArrayの中を対の順序をずれたり、間違えないようにしてやってみるとどうでしょうか。
名前のように短い語句のようなものなら、少々の人手の修正ですむかも。
やってみる元気がないですが。
その際#1で述べておられる、「a」→「ア」~「o」→「オ」は一番最後にすることです。
の注意は必要です。ほかに、KYAなど長い(文字数の多い)文字列を対応表の先におくことです。
50個もマクロ記録のコードを並べるのは・・・と思って。
KIKUTIキクチ
KAKUTIカクチ
SASOKIサソキ
SAAKOIサアコイ
エクセルユーザー関数
Function tokana(a)
x = Array("KA", "KI", "KU", "KE", "KO", "SA", "SI", "SU", "SE", "SO", "TI", "A", "I")
y = Array("カ", "キ", "ク", "ケ", "コ", "サ", "シ", "ス", "セ", "ソ", "チ", "ア", "イ")
z = a
For i = 0 To UBound(x)
z = Replace(z, x(i), y(i))
Next i
tokana = z
End Function
=TOKANA(A1)のように使います。
上記対応表(配列的並び)は、途中で手抜きになっています、完全にしてください。
まあお遊び程度のものですが。
    • good
    • 0
この回答へのお礼

うーん 頑張り 根性 習熟 訓練・・・に挑戦したいですね。

お礼日時:2005/07/01 14:04

こんにちは、#2です。


先ほどのアドバイスでも書いてある通りで、日本語入力システムは、「ATOK」じゃなく、「IME2000」なんですよ。
自宅じゃ、ATOK使ってるんですけどね。ATOK15だから、何とも言えないです。最新のATOKなら、再変換機能があったような気もしますが・・・

IMEは、標準で入っている日本語入力システムなので、切り替えれば使えると思います。
タスクバーを確認してみてくださいね。
でも、体調勝負で5000行、なんとかなるデータ量かもしれませんが、マクロ(VBA)使った方が、間違いなく楽ちんだと思います。

この回答への補足

ATOKで出来ないわけないですよね。
調べてみます。

補足日時:2005/07/01 14:04
    • good
    • 1
この回答へのお礼

ソウですね!体力勝負では前進しないですね。
でも ローマ字→カタカナ変換 ATOCで出来るように探索します。

お礼日時:2005/07/01 14:00

一応、VBAでしかできないと思います。



以下のものを使ってみたらいかがですか?

ローマ字(アルファベット)をカタカナに変換するには?
http://park11.wakwak.com/~miko/Excel_Note/15-03_ …

参考URL:http://park11.wakwak.com/~miko/Excel_Note/15-03_ …

この回答への補足

参考URLを、試しました。(ユーザー定義関数(標準モジュール))
◆結果は満足ですが、「ひらがな」が出力されます。
「カタカナ」を出力させる場合は何処を正せばいいのでしょうか?
 

補足日時:2005/07/07 07:08
    • good
    • 0
この回答へのお礼

VBAの 出来合いがあったんですね。
ご紹介頂いて感謝です。
さっそくテストします。

お礼日時:2005/07/01 13:58

こんにちは。


手動でのやり方ですが・・・

[KOIZUMI]が入力されてるセルをダブルクリックして、セル内にカーソルが点滅するのを確認してください。
もしくは、セルを選択後、F2(ファンクション)キーを押して下さい。
次にKOIZUMIをマウスでドラッグして色を反転させてください。
最後に変換キーを押せば再変換できると思いますので、ここで、F7キーもしくは、カタカナの「コイズミ」を選択してください。
確認したバージョンは、EXCEL2000:IME2000です。
一括で更に自動でと言うことなら、#1さんの言うようにマクロ作成するしかないと思います。
    • good
    • 1
この回答へのお礼

>最後に変換キー・・・
変換候補は アルファベットの綴りリスト(大・小、全・半お組み合わせ)6例だけです。カタカナは 出ません。「ATOK」だからだろうか? 又は 設定が悪いのだろうか?

この回答 5000例ぐらいは 体力勝負で行けます。

お礼日時:2005/06/30 11:53

入力済みのエクセルデータを自動的に変換したいということですよね?



私の思いつくのは
KO → コ
のように50音を置換させるマクロを作ることくらいなんですが・・・。

対象のシートを開いておいて(必ずバックアップはとっておいてください)
最初に、ツール>マクロ>新しいマクロの記録
を選択しておきます。
新しいマクロに適当な名前をつけてOKを押すと、マクロ記録ボタンが出ます。
次に、編集>置換 で
検索する文字列 KO
置換する文字列 コ
を入力し、「全て置換」を押します。
マクロ記録ボタンの「停止」を押します。

ツール>マクロ>マクロ でさっき記録したマクロを編集します。
新しい画面に出る
ActiveCell.Replace What:="KO", Replacement:="コ", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False

をコピーして、End Subの前に50回分ペーストします。
「KO」「コ」のところを50音に手で変えます。
気を付けるのは、KAから始めて
「a」→「ア」~「o」→「オ」は一番最後にすることです。
そうしないとうまく置換できなくなります(「Kア」など)

置換しなきゃならないデータ量が多ければお勧めします。
    • good
    • 0
この回答へのお礼

20例やってみました。
素晴らしい出来映え。
データ数5000です。

頑張って母音 拗音等も完璧に出来るように挑戦してみます。
(マクロは大文字 小文字 半角 全角を統一する集中力が必要だけれど…)

お礼日時:2005/06/30 11:30

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qかなで書かれた文字をアルファベットに変換できませんか?

エクセルででも、なんででもいいのですが、かなで書かれた文字をアルファベットに一度に変換できないでしょうか? たとえば、エクセルの関数phonetic を使えば、漢字を仮名に変換できますよね? それと同じように、仮名をアルファベットに変換する方法はないでしょうか? もし、そんな便利なことができたら、とってもうれしいのですが。。

よろしくお願いいたします。m(__)m

Aベストアンサー

以前、似た質問に回答しました。

No.806286 質問:Excelで五十音順に並べ替えたい
http://oshiete1.goo.ne.jp/kotaeru.php3?q=806286

No.8の手順3)で、

kakasi -Kj -Jj

を実行すると、

(株)アイウエオ
(株)イノウエ
(株)ウラシマ
(株)阿部商店
(株)石井商店
(有)アイウエオ

(kabu)aiueo
(kabu)inoue
(kabu)urashima
(kabu)abeshouten
(kabu)ishiishouten
(ari)aiueo

と変換できました。

参考URL:http://kakasi.namazu.org/, http://oshiete1.goo.ne.jp/kotaeru.php3?q=806286

QExcelで英数字をカナに変換する方法は?

ほかのアプリケーションからデータをインポートし、それをあいうえお順に並べ替えをしたいのですが、一部のデータがアルファベット表示になり正しく並べ替えができません。Excelのデータをアルファベット表示からカナ表記に変える方法(関数?)をおしえてください!

Aベストアンサー

ローマ字→かな(カナ、半角カナ)変換を作ってみました。
変換部分より変換定義部分が長く、かなり長くなりました。質問内容から逸脱して、ローマ字文書を変換する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

ローマ字→かな(カナ、半角カナ)変換を作ってみました。
変換部分より変換定義部分が長く、かなり長くなりました。質問内容から逸脱して、ローマ字文書を変換するVBAになった嫌いがあります。変換定義をシートに登録すれば、20行くらいで書けるようです。

 =fncRomaji_To_Kana(A1,1) のようにして使います。A1はローマ字が入力されているセル、2つ目の引数は、

 1:ローマ字部分を半角カタカナで表示
 2:ローマ字部分を全角カタカナで表示
 3:ローマ字部分を全角ひらがなで表示

IME2000の入力...続きを読む

Qエクセルシートのローマ字をひらがなにしたい。

エクセルシートのローマ字をひらがなにしたい。

A列には元々ローマ字が入力されています。
B列にはローマ字をかな読みで変換したいのですが、
一括で変換する関数やマクロはありますか?

例えば
    A        B
1.yamada    やまだ
2.sasaki    ささき
3.wada      わだ
     ・
     ・
     ・

初心者でマクロの使い方もいまいち分かりませんので、
詳しく教えて下さい。よろしくお願いします。

Aベストアンサー

 関数と作業用Sheetを用いる方法です。(但し、準備に要する労力を考えると、手入力の方が楽かも)

 今仮に、ローマ字を入力するSheetをSheet1として、Sheet2を作業用Sheetとして使用するものとします。

 まず、Sheet2の
B1セルに「bb」、B2セルに「っb」
C1セルに「cc」、C2セルに「っc」
D1セルに「dd」、D2セルに「っd」
E1セルに「ff」、E2セルに「っf」
 (中略)
U1セルに「zz」、U2セルに「っz」
V1セルに「mb」、V2セルに「んb」
W1セルに「mp」、W2セルに「んp」
X1セルに「bya」、X2セルに「びゃ」
Y1セルに「cya」、Y2セルに「ちゃ」
Z1セルに「gya」、Z2セルに「ぎゃ」
AA1セルに「hya」、AA2セルに「ひゃ」
AB1セルに「kya」、AB2セルに「きゃ」

 (中略)
CC1セルに「syo」、CC2セルに「しょ」
CD1セルに「tyo」、CD2セルに「ちょ」
CE1セルに「zyo」、CE2セルに「じゃ」
CF1セルに「sha」、CF2セルに「しゃ」
CG1セルに「shi」、CG2セルに「し」
CH1セルに「shu」、CH2セルに「しゅ」
CI1セルに「sho」、CI2セルに「しょ」
CJ1セルに「tsu」、CJ2セルに「つ」
CK1セルに「cha」、CK2セルに「ちゃ」
CL1セルに「chi」、CL2セルに「ち」
CM1セルに「chu」、CM2セルに「ちゅ」
CN1セルに「cho」、CN2セルに「ちょ」
CO1セルに「kwa」、CO2セルに「くゎ」
CP1セルに「gwa」、CP2セルに「ぐゎ」
CQ1セルに「ba」、CQ2セルに「ば」
CR1セルに「ca」、CR2セルに「か」
CS1セルに「da」、CS2セルに「だ」
CT1セルに「fa」、CT2セルに「ふぁ」
CU1セルに「ga」、CU2セルに「が」
CV1セルに「ha」、CV2セルに「は」
CW1セルに「ja」、CW2セルに「じゃ」
 (中略)
EB1セルに「wi」、EB2セルに「ゐ」
 (中略)
FN1セルに「we」、FN2セルに「ゑ」
 (中略)
GD1セルに「so」、GD2セルに「そ」
GE1セルに「to」、GE2セルに「と」
GF1セルに「vo」、GF2セルに「ヴォ」
GG1セルに「wo」、GG2セルに「を」
GH1セルに「yo」、GH2セルに「よ」
GI1セルに「zo」、GI2セルに「ぞ」
GJ1セルに「a」、GJ2セルに「あ」
GK1セルに「i」、GK2セルに「い」
GL1セルに「u」、GL2セルに「う」
GM1セルに「e」、GM2セルに「え」
GN1セルに「o」、GN2セルに「お」
GO1セルに「n'」、GO2セルに「ん」
GP1セルに「n」、GP2セルに「ん」

という具合に入力して、対応表を作成して下さい。

 次にSheet2のA3セルに次の数式を入力して下さい。

=Sheet1!A1

 次にSheet2のB3セルに次の数式を入力して下さい。

=SUBSTITUTE(A3,B$1,B$2)

 次にSheet2のB3セルをコピーして、C3~GP3の範囲に貼り付けて下さい。
 続いて、3行目全体をコピーして、4行目以下に貼り付けて下さい。

 次にSheet1のB1セルに次の数式を入力して下さい。

=Sheet2!GP3

 次にSheet1のB1セルをコピーして、同じ列の2行目以下に貼り付けて下さい。

 以上で準備は完了で、後はSheet1のA列に、ローマ字を入力すると、B列に仮名文字に変化した文字列が表示されます。

 関数と作業用Sheetを用いる方法です。(但し、準備に要する労力を考えると、手入力の方が楽かも)

 今仮に、ローマ字を入力するSheetをSheet1として、Sheet2を作業用Sheetとして使用するものとします。

 まず、Sheet2の
B1セルに「bb」、B2セルに「っb」
C1セルに「cc」、C2セルに「っc」
D1セルに「dd」、D2セルに「っd」
E1セルに「ff」、E2セルに「っf」
 (中略)
U1セルに「zz」、U2セルに「っz」
V1セルに「mb」、V2セルに「んb」
W1セルに「mp」、W2セルに「んp」
X1セルに「bya」、X2...続きを読む

Q【EXCEL】カナ、ひらがなを英字変換したいのですが

EXCELのセルに書かれている

カタカナ、及びひらがなを英字(アルファベット)に変換する関数はありますでしょうか。関数でなくとも、英字変換できる手段があれば教えてください。

宜しくお願い致します。

Aベストアンサー

探してみたらこういうのがありました。

ローマ字関数(アドイン)
本ソフトは、かな文字をローマ字に変換するユーザー定義関数および一括変換ソフト
http://www.vector.co.jp/soft/win95/business/se364260.html

KIroumazi(ロ-マ字変換)
http://www2s.biglobe.ne.jp/~iryo/2vba/s2vba15.html

QExcelで五十音順に並べ替えたい

Excelで以下のような表がある場合に、五十音順に並べ替えをしたいのですがどのようなやり方で並べ替えすることができるのでしょうか?
どなたかアドバイスよろしくお願いいたします。

--------------
名称
--------------
(株)アイウエオ
(株)イノウエ
(株)ウラシマ
(株)阿部商店
(株)石井商店
(有)アイウエオ
--------------
このように文字コード順に並んでいます。これを

--------------
名称
--------------
(株)アイウエオ
(有)アイウエオ
(株)阿部商店
(株)石井商店
(株)イノウエ
(株)ウラシマ
--------------

このように”(株)”や”(有)”を抜かした五十音読み順にしたいのです。
自動ふりがな機能を使えれば簡単なのですが、データベースから貼り付けたデータなので、自動ふりがな機能は使えません。
また、諸事情でそのデータベースを操作することはできません。

Excelのバージョンは2002です。
よろしくお願いいたします。

Excelで以下のような表がある場合に、五十音順に並べ替えをしたいのですがどのようなやり方で並べ替えすることができるのでしょうか?
どなたかアドバイスよろしくお願いいたします。

--------------
名称
--------------
(株)アイウエオ
(株)イノウエ
(株)ウラシマ
(株)阿部商店
(株)石井商店
(有)アイウエオ
--------------
このように文字コード順に並んでいます。これを

--------------
名称
--------------
(株)アイウエオ
(有)アイウエオ
(株)阿部商店
(株)石井...続きを読む

Aベストアンサー

Excel VBAなら、GetPhonetic メソッドという便利なものが
あります。

これを使えば簡単にフリガナを取得できますよ。
ただし、全部が正確なフリガナを取得できるわけじゃありませんが、
手で入力するよりはよっぽど楽ですね。

QExcelでローマ字をカナに変換させる方法

はじめまして。
現在、Excel XPを使っております。
ローマ字をカナに変換したいのですが、
そのような関数やフリーソフトなどがあれば教えてください。

【例】
YAMADA → ヤマダ
shoji → ショウジ
※ローマ字はヘボン式で入力しています。

何卒よろしくお願いいたします。

Aベストアンサー

こんなのがありますが
Excelらくらく文字変換[ひらがな・カタカナ・ローマ字の相互変換]
http://www.vector.co.jp/soft/win95/business/se297898.html

Qふりがなをアルファベット化する関数ってありますか?

A列に名前、B列にPHONETICで取り出したヨミがあります。
C列にBをアルファベット化したものを反映する関数はありますか?

(A)山田 花子→(B)ヤマダ ハナコ→(C)YAMADA HANAKO
としたいのです。
欲を言えば、「佐藤陽子」さんはSATOU YOUKOではなく、
SATO YOKOになると最高なんですが・・・。

よろしくお願いします。

Aベストアンサー

ricky223 さん、こんばんは。

#さとう ようこ→sato^ yoko^
これは、私の記述間違いです。

>なぜか例外的に「イノウエ」さんは Ino^e としています。
たぶん、間違いから生じたものだと思います。
inoueにするためには、私のマクロでも、「いの'うえ」にしないと、inoueになりません。

ともかく、そろそろそ公開します。これは、付けたしの上に、オフィシャルなヘボン式とは違うものだということで、私自身としては、このマクロの扱いは、ここだけのものにすることにしました。

ここに公開した以上は、特に著作権を主張はできないけれども、まさか、こんなつぎはぎだらけのみっともないコードでは、私が作りましたとも言えないでしょう。(^^;

ユーザー定義関数と、マクロとに分けました。なるべく、<標準モジュール>に登録してください。RomajiHenkan マクロから使えば、右となりにローマ字が出力されます。一部は漢字も変換するはずです。ユーザー定義関数のままですと、さすがに重いです。

HTML上に出す関係で、半角空白のずれが生じる可能性があります。
最後の部分は、
*,^,^, , "
*,^,^,半角空白, 半角空白"

です。

'------------------------------------------------------------------
Option Explicit
Private Const Roman As String = _
"kyu,kyo,shu,sho,chu,cho,hyu,hyo,pyu,pyo,byu,byo,myu,myo,ryu,ryo," & _
"gyu,gyo,ju,jo,ju,jo,nyu,nyo,kori,gori,tori,dori, " & _
"kya,gya,sha,ja,cha,ja,nya,hya,bya,pya,mya,rya," & _
"kyu,gyu,shu,ju,chu,ju,nyu,hyu,byu,pyu,myu,ryu," & _
"kyo,gyo,sho,jo,cho,jo,nyo,hyo,byo,pyo,myo,ryo," & _
"fa,fi,fe,fo,kye,gye,she,je,pye,bye,mye,rye,dhi," & _
"o^,ko^,go^,so^,zo^,to^,do^,no^,ho^,po^,bo^,mo^,yo^,ro^," & _
"a,ka,ga,sa,za,ta,da,na,ha,pa,ba,ma,ya,ra,wa,xya,xa,n'," & _
"i,ki,gi,shi,ji,chi,ji,ni,hi,pi,bi,mi,wi,ri,xi,xyu,xo," & _
"u,ku,gu,su,zu,tsu,zu,nu,fu,pu,bu,mu,yu,ru,xu,xyo," & _
"e,ke,ge,se,ze,te,de,ne,he,pe,be,me,we,re,xe," & _
"o,ko,go,so,zo,to,do,no,ho,po,bo,mo,yo,ro,o,*,^,^, , "
Private Const Kana As String = _
"きゅう,きょう,しゅう,しょう,ちゅう,ちょう,ひゅう,ひょう,ぴゅう,ぴょう,びゅう,びょう,みゅう,みょう,りゅう,りょう," & _
"ぎゅう,ぎょう,じゅう,じょう,ぢゅう,ぢょう,にゅう,にょう,こおり,ごおり,とおり,どおり," & _
"きゃ,ぎゃ,しゃ,じゃ,ちゃ,ぢゃ,にゃ,ひゃ,びゃ,ぴゃ,みゃ,りゃ," & _
"きゅ,ぎゅ,しゅ,じゅ,ちゅ,ぢゅ,にゅ,ひゅ,びゅ,ぴゅ,みゅ,りゅ," & _
"きょ,ぎょ,しょ,じょ,ちょ,ぢょ,にょ,ひょ,びょ,ぴょ,みょ,りょ," & _
"ふぁ,ふぃ,ふぇ,ふぉ,きぇ,ぎぇ,しぇ,じぇ,ぴぇ,びぇ,みぇ,りぇ,でぃ," & _
"おう,こう,ごう,そう,ぞう,とう,どう,のう,ほう,ぽう,ぼう,もう,よう,ろう," & _
"あ,か,が,さ,ざ,た,だ,な,は,ぱ,ば,ま,や,ら,わ,ゃ,ぁ,ん," & _
"い,き,ぎ,し,じ,ち,ぢ,に,ひ,ぴ,び,み,ゐ,り,ぃ,ゅ,ぉ," & _
"う,く,ぐ,す,ず,つ,づ,ぬ,ふ,ぷ,ぶ,む,ゆ,る,ぅ,ょ," & _
"え,け,げ,せ,ぜ,て,で,ね,へ,ぺ,べ,め,ゑ,れ,ぇ," & _
"お,こ,ご,そ,ぞ,と,ど,の,ほ,ぽ,ぼ,も,よ,ろ,を,ヴ,ー,-, , "

Function HKana2Roman(ByVal myString As String)
 Dim RomanArray As Variant
 Dim KanaArray As Variant
 Dim rtn As Variant
 Dim KitsuOnFlg As Boolean
 Dim nn As Variant, mm As Variant
 Dim i As Long, c As Variant
 Dim buf As String, ltr As String, mylocate As Integer
 RomanArray = Split(Roman, ",")
 KanaArray = Split(Kana, ",")
 myString = StrConv(myString, vbWide)
 myString = StrConv(myString, vbHiragana)
 For i = 1 To Len(myString)
  ltr = Mid$(myString, i, 3)
  rtn = Application.Match(ltr, KanaArray, 0)
  If Not IsError(rtn) Then
   If KitsuOnFlg Then
   buf = buf & Mid$(RomanArray(rtn - 1), 1, 1) & RomanArray(rtn _
      - 1)
'促音ccの訂正
   If InStr(buf, "cc") > 0 Then
     buf = Replace$(buf, "cc", "tc")
    End If
   KitsuOnFlg = False
   Else
   buf = buf & RomanArray(rtn - 1)
   End If
   i = i + 2
   Else
   ltr = Mid$(myString, i, 2)
   If ltr Like "っ?" Then
    KitsuOnFlg = True
    Else
    rtn = Application.Match(ltr, KanaArray, 0)
    If Not IsError(rtn) Then
     If KitsuOnFlg Then
      buf = buf & Mid$(RomanArray(rtn - 1), 1, 1) & RomanArray(rtn _
      - 1)
      '促音ccの訂正
      If InStr(buf, "cc") > 0 Then
       buf = Replace$(buf, "cc", "tc")
      End If
      KitsuOnFlg = False
      Else
      buf = buf & RomanArray(rtn - 1)
     End If
     If i + 1 = Len(myString) Then Exit For
     i = i + 1
     Else
     ltr = Mid$(myString, i, 1)
     rtn = Application.Match(ltr, KanaArray, 0)
     If Not IsError(rtn) Then
      If KitsuOnFlg Then
       buf = buf & Mid$(RomanArray(rtn - 1), 1, 1) & _
       RomanArray(rtn - 1)
       KitsuOnFlg = False
       Else
       buf = buf & RomanArray(rtn - 1)
      End If
     End If
    End If
   End If
  End If
 Next i
 'んのチェック1
 Do
 If InStr(buf, "'") > 0 Then
 mylocate = InStr(mylocate + 1, buf, "'")
  If Mid(buf, mylocate + 1, 1) Like "[kstnhmyrwcfgzjdbp]" Then
   buf = Replace(buf, "'", "", 1, 1)
  End If
  If Mid(buf, mylocate + 1, 1) = "" Or Mid(buf, mylocate + 1, 1) = " " Then
   buf = Replace(buf, "'", "", 1, 1)
   Exit Do
  End If
 End If
 Loop Until InStr(mylocate + 1, buf, "'") = 0
 'んのチェック2
 nn = Array("nb", "nm", "np")
 mm = Array("mb", "mm", "mp")
 For i = LBound(nn) To UBound(mm)
  If InStr(buf, nn(i)) > 0 Then
   buf = Replace(buf, nn(i), mm(i))
  End If
 Next i
 '母音の例外長音
 For Each c In Array("a", "i", "u", "e", "o")
  If buf Like "*" & c & c & "?*" Then
  buf = Replace(buf, c & c, c & "^", 1)
  End If
 Next c
 HKana2Roman = buf
End Function
'----------------------------------------------------------
Sub RomajiHenkan()
Dim rng As Range
Dim c As Object
Dim buf As String
Dim myPhone As String
Set rng = Selection 'マウスで文字を選択
For Each c In rng
 myPhone = WorksheetFunction.Phonetic(c)
 If myPhone Like "[ぁ-ン]+" Then
   c.Offset(, 1).Value = HKana2Roman(myPhone)
 Else
   myPhone = Application.GetPhonetic(myPhone)
   c.Offset(, 1).Value = HKana2Roman(myPhone)
 End If
Next
End Sub

ricky223 さん、こんばんは。

#さとう ようこ→sato^ yoko^
これは、私の記述間違いです。

>なぜか例外的に「イノウエ」さんは Ino^e としています。
たぶん、間違いから生じたものだと思います。
inoueにするためには、私のマクロでも、「いの'うえ」にしないと、inoueになりません。

ともかく、そろそろそ公開します。これは、付けたしの上に、オフィシャルなヘボン式とは違うものだということで、私自身としては、このマクロの扱いは、ここだけのものにすることにしました。

ここに公開した以...続きを読む

Qアルファベットにフリガナ

WORDかEXCELで、アルファベットや数字にフリガナを振る方法をご教示ください。
L → エル
O → オー
0 → ゼロ
1 → イチ
などです。

Aベストアンサー

単語単位での読み仮名でしたら、EXCELやWORDでは手作業でやるしかありません。

文字単位でいいですか?例えば、EXCEL という語なら

× エクセル
○ イー エックス シー イー エル

ならVBAで出来ますが。

読み仮名をふるセル範囲を選択し、下記マクロを実行します。ちなみに数字の場合には、先に文字列にしておく必要があります。完了したら、EXCELのPHONETIC関数で読み仮名を表示できます。



Sub 英数字フリガナ()
  
  Dim strTarget$, strYomi$, strTmp$, Buf$
  Dim rngCurrent   As Range
  Dim aryYomi(35, 1) As String
  Dim tmp
  Dim i As Long, j  As Long
  
  strTarget = "0123456789abcdefghijklmnopqrstuvwxyz"
  strYomi = "ゼロ,イチ,ニ,サン,ヨン,ゴ,ロク,ナナ,ハチ,キュウ,"
  strYomi = strYomi & "エイ,ビー,シー,ディ,イー,エフ,ジー,エイチ,アイ,ジェイ,"
  strYomi = strYomi & "ケイ,エル,エム,エヌ,オウ,ピー,キュウ,アール,エス,ティ,"
  strYomi = strYomi & "ユウ,ブイ,ダブリュ,エックス,ワイ,ゼット"

  tmp = Split(strYomi, ",")
  For i = 1 To 36
    aryYomi(i - 1, 0) = Mid(strTarget, i, 1)
    aryYomi(i - 1, 1) = tmp(i - 1)
  Next i
  For Each rngCurrent In Selection
    If Not IsEmpty(rngCurrent) Then
      Buf = CStr(Trim(rngCurrent.Value))
      Buf = StrConv(Buf, vbNarrow)
      Buf = StrConv(Buf, vbLowerCase)
      strYomi = ""
      For i = 1 To Len(Buf)
        strTmp = Mid(Buf, i, 1)
        For j = 1 To 36
          If strTmp = aryYomi(j - 1, 0) Then
            strYomi = strYomi & aryYomi(j - 1, 1) & " "
            Exit For
          End If
        Next j
      Next i
      rngCurrent.Characters.PhoneticCharacters = Trim(strYomi)
    End If
  Next rngCurrent

End Sub

単語単位での読み仮名でしたら、EXCELやWORDでは手作業でやるしかありません。

文字単位でいいですか?例えば、EXCEL という語なら

× エクセル
○ イー エックス シー イー エル

ならVBAで出来ますが。

読み仮名をふるセル範囲を選択し、下記マクロを実行します。ちなみに数字の場合には、先に文字列にしておく必要があります。完了したら、EXCELのPHONETIC関数で読み仮名を表示できます。



Sub 英数字フリガナ()
  
  Dim strTarget$, strYomi$, strTmp$, Buf$
  Dim rngCurrent ...続きを読む

QExcel PHONETIC関数で振り仮名でなく、漢字がそのままでてくる

こんにちは。

エクセルで人名のふりがなが欲しいので、PHONETIC関数でとりだそうとしました。ところが名前の漢字がそのまま表示されます。
もとの名前の漢字が、セルにインプットしたものでなく、他からコピペしたものなので、それがいけないのでしょうか?

よろしくお願いします。

Aベストアンサー

>セルにインプットしたものでなく、他からコピペしたものなので、それがいけないのでしょうか<
そのとおり、エクセルでは、セルに入力したときの読み情報をそのまま記憶しています。したがって、読みを入力しない漢字はそのまま表示されます。

Excel2003の場合
書式 → ふりがな → 編集でふりがなを編集できます。
また、編集の時に設定でカタカナ、ひらがな、配置等を設定できます。

Qカタカナをローマジに変換する。

エクセルシートのセルにずらりと縦一列にカタカナの文字列(半角)が入っています。

これを一括でローマ字(半角)に変えたいのですが。

(例)
ニッポン→nippon
アメリカ→amerika
ホンジツハセイテンナリ→honjituhaseitennari

変換テーブルを作り、VBAでそれを読み込ませて、FOR NEXT 処理することを考えています。スマートな方法がありましたらお願いします。

Aベストアンサー

No.1450971 質問:ふりがなをアルファベット化する関数ってありますか?
http://oshiete1.goo.ne.jp/kotaeru.php3?q=1450971
No.818254 質問:かなで書かれた文字をアルファベットに変換できませんか?
http://oshiete1.goo.ne.jp/kotaeru.php3?q=818254
No.792094 質問:Excel住所録でアルファベットのよみがなを出したい。
http://oshiete1.goo.ne.jp/kotaeru.php3?q=792094

などの過去のQ&Aが参考になると思います。


> FOR NEXT 処理することを考えています。

でしたら、VBAで処理する事に挑戦してみる事をお勧めします。
まずは50音で、濁音、促音なんかは別にしてとか。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング