質問: sieve(対象文字列 [, 区分(0/1)])の式をセルに入力し具体的にどのような値をこの式に入れればよいのですか
回答: ご質問者はユーザー定義関数の設定方法についてお尋ねになっているのだと思います。 ユーザー定義関数は以下の手順で設定します。 まず、ワークシート画面上で、「alt」+「f11」キーを押します。vbe(visual basic editor)が起動します。 次に、挿入、標準モジュール の順にクリックします。画面右側にモジュール ウィンドウが表示されます。 そのウィンドウにfujillinさんが作成されたユーザー定義関数の「正規表現」を若干手直しした(fujillinさん流用をお許しください)、以下のユーザー定義関数をコピペして貼り付けます。 function sieve(byval s as string, optional byref n as long = 0) as string dim reg as object, p set reg = createobject("vbscript.regexp") reg.global = true if n then p = "[a-za-za-za-z]+" else p = "[^a-za-za-za-z]+" reg.pattern = p sieve = reg.replace(s, "") end function 貼り付け終えたら、「alt」+「f11」キーを押します。通常のワークシート画面になります。 これでユーザー定義関数「sieve」が使えるようになりました。 例えばa2にアルファベットの混じった文章があったとして、b2に「=sieve(a2,0)」c2に「=sieve(a2,1)」を記述すれば、 b2にはアルファベットのみ、c2にはアルファベット以外の文字が表示されるはずです。 添付画像を参照してください。 なお、このブックを保存する際は「excel マクロ有効ブック(*.xlsm)」として保存してください。