• 締切済み

エクセルのふりがなを置換したい

はじめまして。 エクセルでふりがなを置換する方法を教えて下さい。 例えば、    A1 いのき    猪木 A2 うまば    馬場 A3 ちょうしゅう   長州 A4 うまば   馬場 A2とA4のふりがな(うまば)を「すべて置換」で(ばば)にする方法を教えて下さい。(実際は、何千という人名リストにふりがなを編集したい人が点在し、手作業で編集するのは非効率なので) よろしくお願い致します。

みんなの回答

noname#52504
noname#52504
回答No.4

私の環境(Excel2000,2003)でも「ふりがな」は置換の対象にはなりませんね。 以下、□□という値に○○とふりがなが設定されている状態を、 □□(○○)と表記します。ex.長州(ちょうしゅう) A案 マクロ(VBA)を使う B案 [すべて検索]を使う(Excel2002以降)  1.適当なセルに「馬場(ばば)」を入力してコピー  2.[検索]機能の[すべて検索]で、「うまば」を検索  3.ダイアログ上でCtrl+A ⇒ すべての「馬場(うまば)」を選択  4.貼り付け  (Excel2003で動作確認済)  コツを掴めば一種類あたりの手間はたいしたことありません。 C案 [ジャンプ]/[形式を選択して貼り付け]を使う(Excel2000)  1.適当な列(例えばB列)で、    =IF(AND(A1="馬場",PHONETIC(A1)="うまば"),1,"")    として「馬場(うまば)」の行をマーク  2.B列を選択して、編集>ジャンプ>セルの選択>数式>文字>OK>Delete    ※""を削除する  3.適当なセルに「馬場(ばば)」を入力してコピー  4.B列を選択して、編集>ジャンプ>セルの選択>数式>数値>OK    ※マークしたセルを選択する  5.貼り付け  6.B列を選択してコピー  7.A列で[形式を選択して貼り付け]>[空白セルを無視する]にチェック>OK  (Excel2000で動作確認済)   編集する必要のある種類が多い場合にはあまり実用的ではありませんけど。

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

こんばんは。 私のExcel(XL2003)では、フリガナの検索はできても置換ができません。たぶん、ご質問者さんも同じではないでしょうか? そこで、今、マクロを書いてみました。一応、こちらでは成功しています。なお、これは、フリガナのみの置換で、そうでないものは、置換されません。標準モジュールに取り付けてください。 ------------------------------------------- 標準モジュールへの取り付け方: Alt +  F11 (Altを押しながらF11)を押すと、Visual Basic Editor 画面が出てきます。 次に、メニューの[挿入]-[標準モジュール]と開けて、クリックすると、画面が現れますので、以下のコードを貼り付けて、 Alt + Q で、画面を閉じます。 後は、Alt + F8 で、「PhoneticReplace」を実行してみてください。ただし、実行する前は、必ず保存するかバックアップを取ってから行ってください。もしも、Phonetic 関数を使っていたら、その関数の返す値は、中身のフリガナが変わっていれば、自動的に変更されています。 '------------------------------------ Sub PhoneticReplace()  Dim Sword As Variant  Dim Rword As Variant  Dim FirstAds As String  Dim c As Range  Dim buf As String  Dim i As Long  ActiveSheet.Range("A1").Select  Sword = Application.InputBox("検索語を入力してください", "検索語の入力", Type:=2)  If Sword = "" Or VarType(Sword) = vbBoolean Then Exit Sub  Sword = StrConv(Sword, vbHiragana + vbWide)    If Not Sword Like "*[ぁ-ヶ]*" Then    MsgBox Sword & " :不正な文字が入っています。", 48    Exit Sub  End If    Rword = Application.InputBox("'置換語を入力'", "置換語の入力", Type:=2)  If Rword = "" Or VarType(Rword) = vbBoolean Then Exit Sub  Rword = StrConv(Rword, vbHiragana + vbWide)  If Not Rword Like "*[ぁ-ヶ]*" Then    MsgBox Rword & " :不正な文字が入っています。", 48    Exit Sub  End If  Set c = ActiveSheet.UsedRange.Find( _   What:=Sword, _   LookIn:=xlValues, _   LookAt:=xlPart, _   SearchDirection:=xlNext, _   MatchCase:=False, _   MatchByte:=False)    If Not c Is Nothing Then     FirstAds = c.Address     Do     buf = c.Characters.PhoneticCharacters     If buf <> "" Then      buf = Replace(buf, Sword, Rword, , , vbTextCompare)      c.Characters.PhoneticCharacters = buf      i = i + 1     End If     Set c = ActiveSheet.UsedRange.FindNext(c)     If c Is Nothing Then Exit Do     Loop Until c.Address = FirstAds     End If   MsgBox CStr(i) & "個の置換をしました。", 64 End Sub '------------------------------------------ 入力される文字には、ひらがな、カタカナは区別はありませんが、検索自体は、一部はカタカナのままで、概ね、このマクロでは、ひらがなで検索がなされますが、テキスト検索なので、ひらがな・カタカナは同じに扱われます。

501xx
質問者

お礼

ご回答ありがとうございます。 VBAについては全く無知ですが、参考とさせていただきます。

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

B1に=PHONETIC(A1)でフリガナを出す。 B1を形式を選択して張り付けー値 で式を消す。 (私の場合これが必要だったが、間違っているかもしれない。) 後は 1.対象セル範囲指定。 2.編集ー置換 3。検索する文字列  ウマバ 4.置換後の文字列 ババ 5.全て置換 ーー ただし、ババやその他大勢の要変換の人がいると、VBAでも使わないと面倒だ。 その場合変換前ー変更後の対応表を作ることが必要。

501xx
質問者

補足

早速ご回答ありがとうございます。 教えていただいた通り、操作した結果、    A         B   1  いのき     いのき     猪木 2  うまば     ばば     馬場 3  ちょうしゅう  ちょうしゅう    長州 4  うまば     ばば    馬場 となりました。 あくまでもA列のふりがな部分を置換したいのですが。 よろしくお願い致します。

回答No.1

編集→置換で 検索文字列 うま 置換後文字列 ば ではいかがでしょ?

501xx
質問者

補足

ご回答ありがとうございます。 ふりがな自体、置換の対象とならないのですが・・・・ よろしくお願いいたします。

関連するQ&A