- ベストアンサー
Excelのユーザー定義関数で特定の文字を変換する方法は?
- Excelのユーザー定義関数で特定の文字を変換する条件を追加することはできるのか?
- 例えば、セル内にリンゴがある場合にミカンに変換する条件を追加することは可能か?
- アドバイスをお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
Function ASC_A(str As String) As String Dim i As Integer, A As Variant, B As Variant For i = 1 To Len(str) If Mid(str, i, 1) Like "[a-zA-Z]" Then Mid(str, i, 1) = StrConv(Mid(str, i, 1), vbNarrow) End If Next '変換前のデータ A = Array("リンゴ", "スイカ") '変換後のデータ B = Array("ミカン", "メロン") For i = 0 To UBound(A) If str Like "*" & A(i) & "*" Then str = Replace(str, A(i), B(i)) End If Next i ASC_A = str End Function の様にしてみてください。 Array内のデータを[""]と[,]で追加してください A = Array("リンゴ", "スイカ","あ","い") B = Array("ミカン", "メロン","か","き")
その他の回答 (2)
- mu2011
- ベストアンサー率38% (1910/4994)
一例です。 Function ASC_A(str As String) As String Dim i As Integer For i = 1 To Len(str) If Mid(str, i, 1) Like "[A-z]" Then Mid(str, i, 1) = StrConv(Mid(str, i, 1), vbNarrow) End If Next ASC_A = Replace(str, "リンゴ", "ミカン") End Function
補足
回答ありがとうございます。 他にも何文字か足していくんですが、その場合は >ASC_A = Replace(str, "リンゴ", "ミカン") この部分を足していくだけで宜しいのでしょうか。 例えば、リンゴ→ミカン以外にも、スイカ→メロンも置換する場合は ASC_A = Replace(str, "リンゴ", "ミカン") ASC_A = Replace(str, "スイカ", "メロン") と足せばいいのでしょうか。
- kybo
- ベストアンサー率53% (349/647)
リンゴをミカンにするだけでいいのでしょうか。 Function ASC_A(str As String) As String Dim i As Integer For i = 1 To Len(str) If Mid(str, i, 1) Like "[a-zA-Z]" Then Mid(str, i, 1) = StrConv(Mid(str, i, 1), vbNarrow) End If Next If str Like "*リンゴ*" Then str = Replace(str, "リンゴ", "ミカン") End If ASC_A = str End Function
補足
回答ありがとうございます。 他にも何文字か足していくんですが、その場合は >str = Replace(str, "リンゴ", "ミカン") この部分を足していくだけで宜しいのでしょうか。
お礼
分かりやすい回答ありがとうございましたm(_ _ )m 完璧な回答だったのでこちらをBAにさせて頂きます