- ベストアンサー
エクセルの関数に詳しい方、教えてください。
よろしくお願いします エクセルの関数に詳しい方、教えてください。 小文字のひらがなだけを小文字のカタカナに変換できますか?量がたくさんあり困っています。 下記のように変換したいです。 しぇいぷ →しェいぷ ふぃぎゅあ →ふィぎュあ まてぃありある →まてィありある よろしくお願いします
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは! お望みの関数ではなく、VBAになってしまいますが 一例です。 ↓の画像のようにSheet2に表を作成しておきます。 その上で画面左下のSheet1のSheet見出し上で右クリック → コードの表示 → VBE画面に ↓のコードをコピー&ペーストしてマクロを実行してみてください。 (Alt+F8キー → マクロ → マクロ実行です) Sub Sample1() 'この行から Dim i As Long, k As Long, str As String, buf As String, c As Range, wS As Worksheet Set wS = Worksheets("Sheet2") For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row For k = 1 To Len(Cells(i, "A")) str = Mid(Cells(i, "A"), k, 1) Set c = wS.Range("A:A").Find(what:=str, LookIn:=xlValues, lookat:=xlWhole) If c Is Nothing Then buf = buf & str Else buf = buf & c.Offset(, 1) End If Next k Cells(i, "B") = buf buf = "" Next i End Sub 'この行まで ※ 関数でないのでSheet1のデータ変更があるたびにマクロを実行する必要があります。m(_ _)m
その他の回答 (3)
- mu2011
- ベストアンサー率38% (1910/4994)
エクセルのバージョンによっては関数のネスト数オーバになりそうなのでユーザ定義関数は如何でしょうか。 シートタブ上で右クリック→コードの表示→挿入→標準モジュール→サンプルコード貼り付けてお試しください。 数式は、=IF(A1<>"",mykana(A1),"") Function mykana(rng) Dim wk, m With CreateObject("VBScript.RegExp") .Pattern = "[ぁ-ぉ]+|[ゃ-ょ]+|っ+" .IgnoreCase = True .Global = True wk = rng For Each m In .Execute(wk) wk = Replace(wk, m, StrConv(m, vbKatakana)) Next mykana = wk End With End Function
お礼
ありがとうございます 感謝します
- tsubuyuki
- ベストアンサー率45% (699/1545)
元の文字列がA1セルにあるとして =SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1,"ぁ","ァ"),"ぃ","ィ"),"ぅ","ゥ"),"ぇ","ェ"),"ぉ","ォ"),"っ","ッ"),"ゃ","ャ"),"ゅ","ュ"),"ょ","ョ") こんな感じでどうぞ。 多分、置換機能を使ってやる方がわかりやすいです。
お礼
ありがとうございます 感謝します
お礼
ありがとうございます 感謝します