文字列を「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で質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/15 15:12
- Visual Basic(VBA) VBA 改行コードの取り方 1 2022/03/22 14:14
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたい 6 2023/01/23 12:00
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Visual Basic(VBA) Vbaで数式をポーランド記法に変換するコードを作って実行しようとするとフリーズします。 1 2022/05/24 17:53
- Visual Basic(VBA) EXCEL VBAにて動的にCheckBOXを複数作成し、同BOXにイベントを追加したい 1 2023/03/16 07:05
- Visual Basic(VBA) エクセルのマクロについて教えてください。 7 2023/07/04 09:18
- Visual Basic(VBA) 貼り付けた値が消えていく 以下はソースファイルの2番目のシートのB6から最終行を取得 ターゲットファ 2 2023/07/27 12:23
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/07/03 09:11
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
首吊りどこ締めるの
-
至急!尿検査前日にオナニーし...
-
尿検査前日に自慰行為した時の...
-
白血球が多いとどんな心配があ...
-
尿検査の前日は自慰控えたほう...
-
検便についてです。 便は取れた...
-
彼女のことが好きすぎて彼女の...
-
勃起する時って痛いんですか? ...
-
EXCELで条件付き書式で空白セル...
-
腕を見たら黄色くなってる部分...
-
EXCELで式からグラフを描くには?
-
変な話しになります。尿検査で...
-
excelでsin二乗のやり方を教え...
-
エクセル指定した範囲からラン...
-
Excelで""で囲む方法
-
ある範囲のセルから任意の値を...
-
2つの数値のうち、数値が小さい...
-
精子が黄色?
-
エクセルでエラーが出て困って...
-
納豆食べた後の尿の納豆臭は何故?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
至急!尿検査前日にオナニーし...
-
首吊りどこ締めるの
-
尿検査の前日は自慰控えたほう...
-
尿検査前日に自慰行為した時の...
-
検便についてです。 便は取れた...
-
白血球が多いとどんな心配があ...
-
中出しをするとお腹が痛い・・・。
-
射精をして1週間以内に尿検査を...
-
彼女のことが好きすぎて彼女の...
-
腕を見たら黄色くなってる部分...
-
勃起する時って痛いんですか? ...
-
変な話しになります。尿検査で...
-
これって喉仏ですか? 私は女性...
-
EXCELで条件付き書式で空白セル...
-
男です。昨日の午後3時くらいに...
-
今朝、毎朝の習慣でオナニーし...
-
納豆食べた後の尿の納豆臭は何故?
-
1日前の検尿
-
値が入っているときだけ計算結...
-
精子が黄色?
おすすめ情報
Function sieve(ByVal s As String …… をどうしたらイイのかも分からないです