
文字列を「ASCII文字」と「それ以外」に分けて、そのどちら一方を返すものです。
使用法は、
= sieve(対象文字列 [, 区分(0/1)])
といった感じ。
もっときめ細かな区別をしたい場合には、パターン部分を入れ替えれば宜しいかと。
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 = "[\x20-\x7F]+" Else p = "[^\x00-\x7F]+"
reg.Pattern = p
sieve = reg.Replace(s, "")
End Function
このマクロをシートに適用するにはどうすればよいですか また = sieve(対象文字列 [, 区分(0/1)])の式をセルに入力し具体的にどのような値をこの式に入れればよいのですか
No.3ベストアンサー
- 回答日時:
ご質問者はユーザー定義関数の設定方法についてお尋ねになっているのだと思います。
ユーザー定義関数は以下の手順で設定します。
まず、ワークシート画面上で、「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)」として保存してください。

No.2
- 回答日時:
(レストランにて)
客 :「マスター、飛び切りおいしいものを作ってちょーだいっ‼」
マスター:「はい、どうぞ~。」
客 :「こんなもん見たこともないんで、いらねえ。帰るっ。」
マスター:「 ・・・・・ ┐(´д`)┌ 」
(後日、別の店で)
客 :「あれって、なんかおいしいかも、なんだけど、どうすりゃええの?」
・・・・・ ┐(´д`)┌
No.1
- 回答日時:
https://oshiete.goo.ne.jp/qa/11969437.html
> 質問の答えになっていません 回答するのをおやめください
> パターン部分の意味が頭が悪いのでよくわかりませんでしたが
> 式をセルに入力し、どのような値をこの式に入れればよいのですか
関数の使い方を知らないのなら、自分で関数を使い方を勉強するか、
とにかく、いろいろと、試行錯誤をしてみればどうですか。
Optional ByRef n As Long = 0
↓
[, 区分(0/1)]
F3に 次の文字列をいれて
シートに適用するにはどうすればよいですか また = sieve(対象文字列
D5に 次の式をいれて
= sieve( F3 )
それだけです。
Function sieve(ByVal s As String ……
をどうしたらイイのかも分からないわけではないでしょう。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
exelで日本語の文字(漢字、ひらがな、 カタカナ)とアルファベットの文字が混じったテキストを1列目
Excel(エクセル)
-
エクセル VBA 2つのコードの結合
Excel(エクセル)
-
エクセルVBAのコードが分かりません
Excel(エクセル)
-
4
Excelで、ある列は空白か会議がある もう1つのセルは曜日が入ってくる このふたつを条件として、会
Excel(エクセル)
-
5
エクセルVBAのコードがわかりません
Excel(エクセル)
-
6
A列がない・・・A列が非表示になっているのではなく存在しない
Excel(エクセル)
-
7
exelで文字列からアルファベットのみを取り出す方法を教えください
Excel(エクセル)
-
8
エクセルで、複数のブックの複数のシートから検索できますか?
Excel(エクセル)
-
9
Excelの関数計算で困ってまして、 内容はと言うと、Text通りの手順で操作しているのですが、セル
Excel(エクセル)
-
10
エクセルVBAで相対パスでフォルダを作成
Excel(エクセル)
-
11
いつもお世話になっております。 1行目に1ヶ月の日付が記入されていて(関数等は使わず1〜31まで手打
Excel(エクセル)
-
12
エクセル画面に現れる変な物 これって何?
Excel(エクセル)
-
13
Excel初心者です。 できる達人の方々、教えて頂けたらと思います(>_<) もしB2に入れた数字が
Excel(エクセル)
-
14
エクセルVBAを勉強中なのですがコードが分からないので教えてください。
Excel(エクセル)
-
15
VBA基本構文の作り方 転記について
Excel(エクセル)
-
16
Excel VBA ユーザー定義関数 複数のセルを一つのセルにまとめたい
Excel(エクセル)
-
17
指定期間日別の合計式は?-3
Excel(エクセル)
-
18
エクセルで毎月第2週日の水曜日に〇が表示される 関数の組み合わせを教えてくれませんか? 毎週水曜日な
Excel(エクセル)
-
19
exelでカタカナ他の文字が混じったテキストで各行の最初にあるカタカナ単語だけを抜き出すマクロ、 式
Excel(エクセル)
-
20
(再質問)エクセルでカンマで区切られた整数を配置したい(2桁の整数あり)
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
人気Q&Aランキング
-
4
≪画像あり≫皮膚ガンですか???
-
5
口の中に黒い血の塊
-
6
お酒を飲んだときの寒さ
-
7
顎下の左右にグリグリとしたし...
-
8
ここ三週間ほど、毎日みぞおち...
-
9
胃と腸が胎動のように動きます...
-
10
納豆食べた後の尿の納豆臭は何故?
-
11
テスターで断線を調べる方法教...
-
12
エクセル指定した範囲からラン...
-
13
舌の裏の痛みのないプツプツの...
-
14
精液が漂白剤のにおいがする・・・
-
15
爪が紫色?
-
16
油ものを食べると吐き気がします
-
17
血液検査の結果、血が濃いと言...
-
18
乳首にしろいカスがついている
-
19
毎日ワイン1本飲む彼氏について
-
20
EXCELで式からグラフを描くには?
おすすめ情報
Function sieve(ByVal s As String …… をどうしたらイイのかも分からないです