
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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
在宅ワークのリアルをインタビュー
ベテラン在宅ワーカーと 在宅ビギナーの方々に、在宅ワークの実情をお教えいただきました。
-
エクセルについてです。 大学の課題で、少し作られてるエクセルのファイルと完成した画像があって、画像通
Excel(エクセル)
-
エクセルのセル参照で、「=シート名!A1」とし、その2行下に「=シート名!A2」としたい。
Excel(エクセル)
-
Excel作成カレンダーで祝日の色を条件付き書式をつかわないで自動で変更する方法を教えてください。
Excel(エクセル)
-
4
エクセルでの進捗管理表について教えてください
Excel(エクセル)
-
5
エクセルに詳しい方、教えて頂けないでしょうか。 64という数字があるとして、60から70までの範囲に
Excel(エクセル)
-
6
エクセルで少し複雑な当番表を作成したい。
Excel(エクセル)
-
7
excel ひとつのセルを分割
Excel(エクセル)
-
8
2021年度以降の4直3交代のシフト表を作成したいです。 2020年のベースはこの写真のようになって
Excel(エクセル)
-
9
vlookup関数についてです 検索値123456があります。 123456を文字列にすると、検索す
Excel(エクセル)
-
10
Excelで出来るかどうか教えて下さい… 画像のように Aの列に数字があります。 CとDには基準の値
Excel(エクセル)
-
11
Excel 十字矢印によるセル移動の禁止
Excel(エクセル)
-
12
A列がない・・・A列が非表示になっているのではなく存在しない
Excel(エクセル)
-
13
Excelに詳しい方教えて下さい。この2つの問題が分かりません。難易度が高い為か他のサイトで質問して
Excel(エクセル)
-
14
PDFのファイル名をリネームをしたい(若干複雑かもしれません)
Excel(エクセル)
-
15
ExcelのMATCH関数、INDEX関数を使った台帳で、項目が一部N/Aとなってしまい困っています
Excel(エクセル)
-
16
【至急】Excelで下記を計算するにはどのような関数で記載すればよいのですか?
Excel(エクセル)
-
17
エクセル 関数で日にちを出すには?
Excel(エクセル)
-
18
エクセルで日付を入力するとき、年を省略するにはどうすればいいですか?
Excel(エクセル)
-
19
Excelの関数について教えてください。 ○から始まる場合は□、●から始まる場合は■、の複数の条件の
Excel(エクセル)
-
20
作成した文書だけを別なファイルに保存したいのですが、不要な文書まで保存されてしまう。
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
人気Q&Aランキング
-
4
PDFファイルから特定の文字を検...
-
5
未審査請求包袋抽出表作成とは...
-
6
ACCESSのクエリー抽出条件にIIF...
-
7
エクセルの7桁の中から3,5,7...
-
8
ACCESS クエリ 条件以外のレ...
-
9
Accessの選択クエリの抽出条件...
-
10
PCゲーム 音声 画像 抽出方法
-
11
X-Ripperというフリーウェアに...
-
12
「パラメータが少なすぎます。3...
-
13
Access フォームコンボボック...
-
14
影領域のみの除去方法を教えて...
-
15
Access チェックボックスを利用...
-
16
ACCESSのフォームからレポート...
-
17
エクセル関数で住所から丁目番...
-
18
テキストをVBAでエクセルに抽出...
-
19
エクセルで色の付いたセルを抽...
-
20
Excelマクロ オートフィルター...
おすすめ情報
特に30代の方に回答となっていますが、間違えです。すみません。
メールから文章を抽出する部分は完了しているので、後半の文章内を検索して、12桁数値と合致した所だけ抜き出す部分の方法をご教授いただきたいです。
メールから取り出しまではVBAでしています。
文章内に12桁の数値は複数あるかもしれませんが、
一番初めに出てくる12桁の数値を取り出せれば、良い感じです。
12桁以上あることはありません。
勉強不足もあり、メールから取り出すとこまではできたのですが、その文章から12桁数値を取り出す考え方がうまく思いつかないという所です。