アプリ版:「スタンプのみでお礼する」機能のリリースについて

はじめまして。

エクセルでふりがなを置換する方法を教えて下さい。

例えば、
  
A1 いのき
   猪木
A2 うまば
   馬場
A3 ちょうしゅう
  長州
A4 うまば
  馬場

A2とA4のふりがな(うまば)を「すべて置換」で(ばば)にする方法を教えて下さい。(実際は、何千という人名リストにふりがなを編集したい人が点在し、手作業で編集するのは非効率なので)

よろしくお願い致します。

A 回答 (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で動作確認済) 
 編集する必要のある種類が多い場合にはあまり実用的ではありませんけど。
    • good
    • 0

こんばんは。



私の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
'------------------------------------------

入力される文字には、ひらがな、カタカナは区別はありませんが、検索自体は、一部はカタカナのままで、概ね、このマクロでは、ひらがなで検索がなされますが、テキスト検索なので、ひらがな・カタカナは同じに扱われます。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

VBAについては全く無知ですが、参考とさせていただきます。

お礼日時:2007/11/09 23:11

B1に=PHONETIC(A1)でフリガナを出す。


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

この回答への補足

早速ご回答ありがとうございます。

教えていただいた通り、操作した結果、

   A         B  
1  いのき     いのき
    猪木
2  うまば     ばば
    馬場
3  ちょうしゅう  ちょうしゅう
   長州
4  うまば     ばば
   馬場

となりました。

あくまでもA列のふりがな部分を置換したいのですが。

よろしくお願い致します。

補足日時:2007/11/09 23:02
    • good
    • 0

編集→置換で



検索文字列 うま
置換後文字列 ば

ではいかがでしょ?

この回答への補足

ご回答ありがとうございます。

ふりがな自体、置換の対象とならないのですが・・・・

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

補足日時:2007/11/09 23:08
    • good
    • 0

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