- 締切済み
文字列にカタカナがあるかどうかの関数
A列に入力されている文字列の中にカタカナ(半角,全角含む)が含まれている場合Errorを返す関数ってありますか? 文字列は何文字というのは決まっていません。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- sakenomo
- ベストアンサー率52% (35/67)
たぶんこれで大丈夫だと思いますので、試してみてください。 Visual Vasic Editorを起動して標準モジュールに貼り付ければ、ユーザー定義関数として使えます。 Function Katakana(文字列 As Range) As String Dim myStr As String, n As Long, _ myLen As Long, myRange As Range For Each myRange In 文字列 myStr = myRange.Value If myStr <> "" Then myLen = Len(myStr) Do n = n + 1 Select Case Asc(Mid(myStr, n, 1)) Case 166 To 223, -31936 To -31850 Katakana = "Error" Exit Function End Select Loop Until n = myLen n = 0 End If Next myRange Katakana = "" End Function
- nihonjinn
- ベストアンサー率39% (79/200)
すいません途中でした。 =IF(MIN((FIND({"ア","カ","サ","タ","ナ"},JIS(A1)&"アカサタナ",1)))>LEN(JIS(A1)),FALSE(),TRUE()) 長いので省略しましたが、ア~ンまですべてのカタカナを設定する必要があります。 FIND関数でカタカナの位置を見つけ、MIN関数で一番手前の位置を見つけます。その位置が元のA1の文字内であればカタカナが含まれていることになります。 JIS関数で全角にそろえられます。
- nihonjinn
- ベストアンサー率39% (79/200)
=IF(MIN((FIND({"ア","カ","サ","タ","ナ"},JIS(A1)&"アカサタナ",1)))>LEN(JIS(A1)),FALSE(),TRUE()) 長いので省略しましたが、ア~ンまで設定してやるとすべての
言語は何ですか?
補足
Exceldの関数ですが。なるべくVBAは使用したくないので
お礼
回答ありがとうございます。 実はStrConvでユーザー定義関数を作成してはみたんですが、ユーザー側がVBがわからない為、関数で出来ないかと思い今回質問してみました。 関数では限界がありますね。どうもありがとうございました。