
No.4ベストアンサー
- 回答日時:
以下のようにしてください。
Get12Digitが文字を与えると、その中から12桁の数字を取り出す。
関数です。(該当の数字がないときは""を返します)
sampleはA列の文字を与え、取得結果をB列に設定しています。
C列は、Get12Digitをユーザー定義関数として使用した場合です。
C1へ
=Get12Digit(A1)
と記入すると、取得結果をC1へ設定します。
---------------------------------------------------
Public Sub sample()
Dim wrow As Long
For wrow = 1 To 10
Dim str As String
str = Get12Digit(Cells(wrow, 1).Value)
If str = "" Then
Cells(wrow, 2).Value = "12桁の数字なし"
Else
Cells(wrow, 2).Value = str
End If
Next
End Sub
Public Function Get12Digit(str As String) As String
Dim reg As Object
Dim mat As Variant
Dim mat0 As Variant
Get12Digit = ""
Set reg = CreateObject("VBScript.RegExp")
reg.Pattern = "(\D|^)(\d{12})(\D|$)"
reg.Global = False
Set mat = reg.Execute(str)
If mat.Count <> 1 Then Exit Function
Set mat0 = mat(0)
Get12Digit = mat0.submatches(1)
End Function

No.3
- 回答日時:
No1です
>その文章から12桁数値を取り出す考え方がうまく思いつかないという所です。
だと思ったので、No1に参考を挙げておいたのですが、意味が伝わっていないのかな?
以下は、正規表現での抽出例です。
Set reg = CreateObject("VBScript.RegExp")
reg.Pattern = "\d{12}"
testString = "太郎さんと次郎さんの家123は、①と②の間の住所番地は001122334455の場所にあります。"
Set m = reg.Execute(testString)
If m.Count Then res = m(0).Value Else res = "該当なし"
MsgBox "抽出値: " & res
No.1
- 回答日時:
こんにちは
>メールから文章を抽出する部分は完了しているので
多分、VBAでなさっているのではないかと推測しました。
であるなら、そのままVBAで抽出まで行ってしまうのが便利そうですね。
12桁以上連続していたらどうするのかなど、詳細が不明ですが、Like演算子や正規表現を用いるのが簡単かと思います。
◇ Like演算子
https://docs.microsoft.com/ja-jp/dotnet/visual-b …
◇ 正規表現
https://docs.microsoft.com/ja-jp/dotnet/standard …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルで2つの表を比較して、文字列が同じだが、その行のある値が違うものを抽出したい 1 2022/10/06 21:48
- Excel(エクセル) エクセルで#以降の文字を取得したい 1 2022/03/28 13:14
- その他(データベース) Accessのクエリで1フィールドの抽出条件設定をNullでなく全角半角含む空白のみの文字列でない文 1 2023/04/24 15:20
- Excel(エクセル) エクセルの数式で教えてください。 2 2023/03/09 16:55
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- Excel(エクセル) エクセルで書式設定とフィルタの組み合わせでうまく行かないのですが 4 2022/10/07 10:02
- Excel(エクセル) Indirect関数について、Formulatextで抽出した数式を参照したい。 1 2022/12/15 11:16
- Excel(エクセル) マクロ削除再抽出する方法を教えて下さい。 6 2022/11/26 11:03
- Excel(エクセル) Excelの1つのセルにそれぞれ文字+数字が入力されていて、 数字のみ抽出して合計したいです。(合計 4 2023/03/16 23:44
- Excel(エクセル) 複数セルデータを別シートの単一セルにコピーしたい。(詳細をご参照ください) 1 2022/12/14 15:08
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで、抽出したデータだ...
-
PDFファイル/抽出許可され...
-
access クエリ yes/no型のクエ...
-
エクセルの関数
-
PCゲーム 音声 画像 抽出方法
-
コンボボックス全ての値を取得...
-
未審査請求包袋抽出表作成とは...
-
AccessのWHERE句において、変数...
-
Excel 文字列から6桁の数値の抽出
-
Access2003 式ビルダでのLike...
-
エクセル関数で住所から丁目番...
-
エクセル 行からランダムに1つ...
-
Access フォームコンボボック...
-
アクセスのテキストボックスでO...
-
Access クエリ抽出条件の「Bet...
-
Access チェックボックスを利用...
-
「パラメータが少なすぎます。3...
-
エクセル VBA メール本文に指定...
-
access サブフォームにリストを...
-
Access サブフォームでの選択行...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで、抽出したデータだ...
-
X-Ripperというフリーウェアに...
-
Excel 文字列から6桁の数値の抽出
-
未審査請求包袋抽出表作成とは...
-
PDFファイル/抽出許可され...
-
PDFファイルから特定の文字を検...
-
ACCESSのクエリー抽出条件にIIF...
-
エクセル VBA メール本文に指定...
-
「パラメータが少なすぎます。3...
-
access クエリ yes/no型のクエ...
-
AccessのWHERE句において、変数...
-
ACCESS クエリ 条件以外のレ...
-
アクセス 同じフィールド(テキ...
-
【AccessVBA】レコードセットOp...
-
Accessの選択クエリの抽出条件...
-
エクセルで色の付いたセルを抽...
-
Access フォームコンボボック...
-
PCゲーム 音声 画像 抽出方法
-
エクセル関数で住所から丁目番...
-
Access チェックボックスを利用...
おすすめ情報
特に30代の方に回答となっていますが、間違えです。すみません。
メールから文章を抽出する部分は完了しているので、後半の文章内を検索して、12桁数値と合致した所だけ抜き出す部分の方法をご教授いただきたいです。
メールから取り出しまではVBAでしています。
文章内に12桁の数値は複数あるかもしれませんが、
一番初めに出てくる12桁の数値を取り出せれば、良い感じです。
12桁以上あることはありません。
勉強不足もあり、メールから取り出すとこまではできたのですが、その文章から12桁数値を取り出す考え方がうまく思いつかないという所です。