- ベストアンサー
英文の各単語の最初の2文字以降を○に変換したい
- エクセルのデータに英文がたくさんあります。英文の各単語の最初の2文字以降を○に変換したいのです。
- 質問者はエクセルのデータに英文がたくさんあり、各単語の最初の2文字以降を○に変換したいと考えています。
- 単語だけの転換ならばできるが、文となるとわからないため、関数かプログラムでうまく処理できるか知りたいという質問です。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは。 前の続きですね。まあ、英文内容は難しい(hardest)文章ですね。 以下で試してみてください。多くを調べたわけではありませんから、不都合があるかもしれません。標準モジュールに登録してから、実行してください。 Sub Test1() Dim strPattern As String Dim c As Range Dim buf As String Dim Matches As Object Dim Match As Object strPattern = "\b[^\s]{2,}\b" With CreateObject("VBScript.RegExp") .Pattern = strPattern .IgnoreCase = True .Global = True Application.ScreenUpdating = False For Each c In Range("A1", Range("A65536").End(xlUp)) If .Test(c.Value) Then buf = c.Value Set Matches = .Execute(buf) For Each Match In Matches buf = Replace(buf, Match, Left(Match, 2) & String(Len(Match) - 2, "○")) Next Match c.Offset(, 1).Value = buf End If Next c Application.ScreenUpdating = True End With End Sub
お礼
Wendy02さん、またまたお世話になりましてありがとうございます。 いつもながら即座にご回答いただき助かりました。 見事に一発で転換されたので感動しました。 以前はいちいち手で変換していました。その頃はエクセルの使用も気づかずにワードで作っていました。 エクセルを使い出して、データの利用がいろいろにできるのでその便利さに驚いています。 英語力をつけるためにいろいろと工夫しています。 助かりました。ありがとうございました。