[[20091128192201]] 『ローマ字から 母音のみ・子音のみを抜き出す』(さよ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『ローマ字から 母音のみ・子音のみを抜き出す』(さよ)

 先日は「ローマ字を数字に変換」でお世話になり、ありがとうございました。
 おかげさまでずい分と、データ処理がシンプルになりました。
 またお世話になります。よろしくお願いします。

 WindowsXP Excel2003 です

ローマ字で書かれた名前から、母音のみ、子音のみを抜き出す事は可能でしょうか。

@ A1 にローマ字で名前を記入

A A2 に母音のみ抜き出し記入

B A3 に子音のみ抜き出し記入

 わがまま言って申し訳ありません。
 どうかよろしくお願いします。

 具体的な、例をあげてみて下さい。

 (NF)

 こんにちは。
 ちょっとデータレイアウトが違いますが、
 A列に元のローマ字文字列があって、B列に母音を、C列にそれ以外を 
 抽出するサンプルです(正規表現で)

   A列    B列      C列
 kanabun	aau	knbn
 sayo	ao	sy
 AIUEO	AIUEO	
 KAKIKUKEKO	AIUEO	KKKKK
 Hello	eo	Hll

 ’標準モジュール
 Sub Try1()
  Dim c As Range

  With CreateObject("VBScript.RegExp")
      .Pattern = "[^aiueo]"
      .Global = True
      .IgnoreCase = True
      For Each c In [A1:A5]
          c(1, 2).Value = .Replace(c.Value, "")
      Next

      .Pattern = "[aiueo]"
      For Each c In [A1:A5]
          c(1, 3).Value = .Replace(c.Value, "")
      Next
  End With
 End Sub

       (kanabun) 2009-11-28 22:15


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

返信が遅くなりまして申し訳ありません。

 NFさま 
 具体的な例は、私がもたもたしている間にkanabunさまが分かりやすくまとめてくださいました。
 もし宜しければ、再びお願いいたします。

kanabunさま

 作っていただきましたサンプルを標準モジュールに貼り付けましたが、
 それをどのセルに入れれば良いのかが分かりません。

 A1 B1 C1 D1 それぞれに、=Try1()を挿入してみましたが、
 どこに入れても『その名前は正しくありません』と出てしまうのです。
 本当に初歩的なことが分かっていなくてお恥ずかしい限りですが、
 宜しければ再度ご教授お願いします。

(さよ)


 こんばんは。
 標準モジュールにおいた Sub Try1() は 関数でなくマクロですので、
 ワークシートのA列に 上の例のように適当な ローマ字を入力した後、
 メニュ−[ツール]-[マクロ]-[マクロの実行...] より Try1 を実行して
 検証してください。
   (kanabun)


 関数にするなら、
 標準モジュールに こんなのをおいて

 Function Mother(ByVal r As Range) As String
   With CreateObject("VBScript.RegExp")
      .Pattern = "[^aiueo]"
      .Global = True
      .IgnoreCase = True
      Mother = .Replace(r.Value, "")
   End With
 End Function

 Function Child(ByVal r As Range) As String
   With CreateObject("VBScript.RegExp")
      .Pattern = "[aiueo]"
      .Global = True
      .IgnoreCase = True
      Child = .Replace(r.Value, "")
   End With
 End Function

 たとえば、
 [A1]セルに kanabun 
 [A2]セルに =Mother(A1) と数式を入れると、 セルは「aau」となりますし、
 [A3]セルに =Child(A1)  と打ち込むと、「knbn」と表示されます。

            (kanabun)


kanabunさま また返信が遅くなってしまい申し訳ありません。

 マクロの方、ご指示通りに実行しましたら出来ました!
 まさに、思い描いていたような結果が得られ、感動です!
 早速、実行ボタンを設置し、使わせていただいております。

 ここ数日、他力本願ばかりではいけないと、
 文字列操作のSUBSTITUTEなどを試してみたりしたのですが、
 全く的外れだった事が良く分かりました。
 やはり、初心者にはハードルが高すぎなのですね。

 最初に作って頂きましたマクロだけでも十分過ぎるほどですが、
 関数までご指導いただきまして、どんなに感謝しても足りません。
 ご指導いただきましたことを、ちゃんと理解できるように、これから頑張って勉強します。
 本当にありがとうございました。

(さよ)


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.