- 締切済み
【エクセル】 関数による電子メールアドレスチェック
電子メールアドレスに許可された文字列だけが使用されているかを関数のみでチェックしたいと考えています。 条件:使用可能文字列がa~zの英字と「@(アットマーク)」と「.(ドット)」 例(1) A1セル : abc@xxx.jp であれば「0」を表示 例(2) A1セル : abc@().jp であれば「1」を表示 色々試してみたりしたのですがうまくいかず…。 よろしくお願いいたします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- end-u
- ベストアンサー率79% (496/625)
配列数式を使う場合は =OR(ISERR(FIND(MID(A1,ROW($1:$256),1),".@abcdefghijklmnopqrstuvwxyz")))*1 と入力して[ctrl]+[shift]+[enter]で確定させます。 配列数式がよくわからない、もしくは使いたくない場合は =OR(INDEX(ISERR(FIND(MID(A1,ROW($1:$256),1),".@abcdefghijklmnopqrstuvwxyz")),))*1 で普通に式入力します。 ".@abcdefghijklmnopqrstuvwxyz" この箇所のチェック文字種を修正する可能性もあるなら、 その文字列を[名前定義]するとメンテナンスし易いかと思います。 VBAを使って標準モジュールにユーザー定義関数を作る時のサンプルとしては 以下のような感じです。 Option Explicit Function chk(r As Range) As Long Const arg = ".@abcdefghijklmnopqrstuvwxyz" Dim s As String Dim f As Boolean Dim i As Long s = r(1).Text For i = 1 To Len(s) f = InStr(1, arg, Mid$(s, i, 1), vbBinaryCompare) = 0 If f Then Exit For Next chk = -f End Function