• 締切済み

【エクセル】 関数による電子メールアドレスチェック

電子メールアドレスに許可された文字列だけが使用されているかを関数のみでチェックしたいと考えています。 条件:使用可能文字列がa~zの英字と「@(アットマーク)」と「.(ドット)」 例(1) A1セル : abc@xxx.jp であれば「0」を表示 例(2) A1セル : abc@().jp であれば「1」を表示 色々試してみたりしたのですがうまくいかず…。 よろしくお願いいたします。

みんなの回答

  • end-u
  • ベストアンサー率79% (496/625)
回答No.1

配列数式を使う場合は =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

関連するQ&A