
No.5ベストアンサー
- 回答日時:
>本コードは主にどんなステートメントを使っているのでしょうか?
>いつも見るコードからは想像が出来ないです
正規表現を使用しています。
詳細は「VBA 正規表現」 で検索してください。
https://www.sejuku.net/blog/33541
https://codezine.jp/article/detail/1655
https://qiita.com/kisa/items/74085046abc6c0ac2607
正規表現は言語毎に多少の違いがありますが、
基本的な考え方は一緒なので、正規表現を覚えておいてください。
提示したスクリプトを解説すると
Public Function Get_Number(ByVal tel_str As String) As String
Dim reg As Object
Dim matches As Variant
Get_Number = ""・・・①
Set reg = CreateObject("VBScript.RegExp")・・・②
reg.Pattern = "(^|\D+)(\d{2}-\d{4}-\d{4}-\d)(\D+|$)"・・・③
Set matches = reg.Execute(tel_str)・・・④
If matches.count = 0 Then Exit Function・・・⑤
Get_Number = matches(0).submatches(1)・・・⑥
End Function
①戻り値を空白("")に設定
②正規表現用オブジェクトの作成
③正規表現のマッチパターンを設定(ここがポイントです)
④マッチの実行を行い、結果をmatchesに格納
⑤マッチしないなら終了
⑥マッチした部分の
●●-●●●●-●●●●-●
の部分を取り出し、戻り値に設定する
丁寧な解説ありがとうございます
大変、難しい論点だと思いましたが
難しいとやる気もでますね
ご指南、きっかけありがとうございます
No.4
- 回答日時:
ユーザー定義関数になります。
以下のマクロを標準モジュールに登録してください。
この関数に文字列を渡すと、ハイフン付き数字が返ってきます。
添付図は、この関数の使用例です。
A列に文字列があるとき、B列にハイフン付き数字を抜き出す例です。
B1へ
=Get_Number(A1)
と入力し、オートフィルで下の行へコピーします。
該当数字がない場合は、空白("")が返ります。
Public Function Get_Number(ByVal tel_str As String) As String
Dim reg As Object
Dim matches As Variant
Get_Number = ""
Set reg = CreateObject("VBScript.RegExp")
reg.Pattern = "(^|\D+)(\d{2}-\d{4}-\d{4}-\d)(\D+|$)"
Set matches = reg.Execute(tel_str)
If matches.count = 0 Then Exit Function
Get_Number = matches(0).submatches(1)
End Function

お返事ありがとうございます
うまく、出来ました。大変、感動しています
本コードは主にどんなステートメントを使っているのでしょうか?
いつも見るコードからは想像が出来ないです
勉強のヒントになるステートメントやメソッドがあれば
教えて下さい
宜しくお願いします
No.3
- 回答日時:
どのようなパターンで数値を抜き出すのかという事が不明です。
>●●-●●●●-●●●●-● 形式の数値を抜き出したいです
という条件なら
あいう90-1234-2508-2あいうえお
の場合は
⇒ 90-1234-2508-2
になると思うのですが、何故
⇒ 10-1234-2508-2
になるのでしょうか?
No.2
- 回答日時:
関数REGEXEXTRACTを使用します。
下記ページの「例1: 電話番号の抽出」が参考になります。https://sakata-engineer.com/2024/05/22/excel-%E3 …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(生活家電) 【関数】不規則な文章から ●●-●●●●-●●●●-●● を抜きだしたい 4 2025/02/15 15:00
- その他(生活家電) 【関数】不規則な文章から ●●-●●●●-●●●●-●● を抜きだしたい 1 2025/02/14 00:55
- JavaScript 特定の文字列を複数抜き出したいです。 関数かGAS、あるいは条件付き書式等で判別できたら教えて下さい 1 2023/09/29 22:56
- Excel(エクセル) 同じ型【ハイフンと数字】だけ抜き出す関数について 5 2024/02/13 23:15
- Excel(エクセル) 【関数】適切な文字数の数字を取り出したい 9 2024/05/08 21:42
- Excel(エクセル) 4つのパターンを表示するEXACT関数について 2 2024/04/18 07:49
- Excel(エクセル) EXACT関数とIF関数の組み合わせについて 2 2024/04/17 08:26
- 数学 2次関数の問題です。よろしくお願いします。 2 2024/06/23 22:56
- Visual Basic(VBA) エクセルの数式で教えてください。 1 2023/07/31 15:49
- 数学 関数のグラフ 5 2023/07/20 23:57
このQ&Aを見た人はこんなQ&Aも見ています
-
Excelの関数内の文字を一括変換する方法を教えてください。 例えば、 大阪支店のシートの4月の売上
Excel(エクセル)
-
条件付書式設定にて、本日の日付を条件として、2行分にセルに色を付けるには?
Excel(エクセル)
-
【マクロ】WEBシステムから保存ではなく、開いたExcelデータを変数に入れる事が出来る?
Excel(エクセル)
-
-
4
エクセルに、105と入力すると、勝手に100で除算して1.05になってしまうのは何故でしょうか? ち
Excel(エクセル)
-
5
Excelの新しい空白のブックを開く度に 画像のような警告が出てきます ブック59と書かれていますが
Excel(エクセル)
-
6
重複しない値を抽出したい
Excel(エクセル)
-
7
Excel 複数のセルが一致するときに網掛けをする式は作れますか
Excel(エクセル)
-
8
マクロOn Error GoTo ErrLabelとOn Error Resume Next教えて
Excel(エクセル)
-
9
Excelについての質問です 並べ替えの機能で社員を50音順に並べ替えたいのですが 名前の横に社員番
Excel(エクセル)
-
10
派遣会社とかハローワークとかがやってるパソコン研修(主にエクセル)って受けといた方がいいんでしょうか
Excel(エクセル)
-
11
【エクセル】期限アラートについて
Excel(エクセル)
-
12
エクセルでコーピして貼り付けるがバラバラになり 行の高さも、列の幅も合いません。 どうしたらいいので
Excel(エクセル)
-
13
エクセルで同じブックを開くについて
Excel(エクセル)
-
14
excelで日付関数の文字列変換の前にスペースを入れる方法をお教え下さい。
Excel(エクセル)
-
15
エクセルの循環参照、?
Excel(エクセル)
-
16
【マクロ】宣言は、何のためにするんですか???しなくても、普通に動いしまうのはなぜ?
Excel(エクセル)
-
17
findメソッドで、10:00:01 を検索をして、メッセージボックスにセル番地と時間が表示できない
Excel(エクセル)
-
18
エクセルのdatedif関数を使って、年齢と月齢を入力しました。 関数を入力して、問題なく使えたので
Excel(エクセル)
-
19
9月17日でサービス終了らしいのですが、今までのようなエクセルの質問や相談はどこですればいい?
Excel(エクセル)
-
20
名前の間のスペースをそろえる関数はありますか?佐藤 太郎 佐藤 太郎
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
9月17日でサービス終了らし...
-
エクセルのdatedif関数を使って...
-
エクセル ドロップダウンリスト...
-
特定のセルだけ結果がおかしい...
-
【マクロ】【配列】3つのシー...
-
【関数】同じ関数なのに、エラ...
-
【マクロ】列を折りたたみ非表...
-
vba テキストボックスとリフト...
-
エクセルのVBAで集計をしたい
-
【マクロ】EXCELで読込したCSV...
-
【条件付き書式】シートの中で...
-
【マクロ】オートフィルターの...
-
ページが変なふうに切れる
-
【マクロ】アクティブセルの時...
-
【マクロ】3行に上から下に並...
-
エクセルの循環参照、?
-
iPhoneのExcelアプリで、別のシ...
-
【マクロ】A列にある、日付(本...
-
エクセル
-
エクセルに、105と入力すると、...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
おすすめ情報