- 締切済み
エクセルのふりがなを置換したい
はじめまして。 エクセルでふりがなを置換する方法を教えて下さい。 例えば、 A1 いのき 猪木 A2 うまば 馬場 A3 ちょうしゅう 長州 A4 うまば 馬場 A2とA4のふりがな(うまば)を「すべて置換」で(ばば)にする方法を教えて下さい。(実際は、何千という人名リストにふりがなを編集したい人が点在し、手作業で編集するのは非効率なので) よろしくお願い致します。
- みんなの回答 (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)
こんばんは。 私の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 '------------------------------------------ 入力される文字には、ひらがな、カタカナは区別はありませんが、検索自体は、一部はカタカナのままで、概ね、このマクロでは、ひらがなで検索がなされますが、テキスト検索なので、ひらがな・カタカナは同じに扱われます。
- imogasi
- ベストアンサー率27% (4737/17069)
B1に=PHONETIC(A1)でフリガナを出す。 B1を形式を選択して張り付けー値 で式を消す。 (私の場合これが必要だったが、間違っているかもしれない。) 後は 1.対象セル範囲指定。 2.編集ー置換 3。検索する文字列 ウマバ 4.置換後の文字列 ババ 5.全て置換 ーー ただし、ババやその他大勢の要変換の人がいると、VBAでも使わないと面倒だ。 その場合変換前ー変更後の対応表を作ることが必要。
補足
早速ご回答ありがとうございます。 教えていただいた通り、操作した結果、 A B 1 いのき いのき 猪木 2 うまば ばば 馬場 3 ちょうしゅう ちょうしゅう 長州 4 うまば ばば 馬場 となりました。 あくまでもA列のふりがな部分を置換したいのですが。 よろしくお願い致します。
- ore-summer
- ベストアンサー率29% (133/454)
編集→置換で 検索文字列 うま 置換後文字列 ば ではいかがでしょ?
補足
ご回答ありがとうございます。 ふりがな自体、置換の対象とならないのですが・・・・ よろしくお願いいたします。
お礼
ご回答ありがとうございます。 VBAについては全く無知ですが、参考とさせていただきます。