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を探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・【お題】絵本のタイトル
- ・【大喜利】世界最古のコンビニについて知ってる事を教えてください【投稿~10/10(木)】
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・ハマっている「お菓子」を教えて!
- ・最近、いつ泣きましたか?
- ・夏が終わったと感じる瞬間って、どんな時?
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで、抽出したデータだ...
-
【Access】条件未入力時、全件...
-
ExcelVBAであるファイルから検...
-
エクセル VBA メール本文に指定...
-
2ちゃんのレス抽出の方法
-
Accessで○ヶ月前以前を抽出する...
-
X-Ripperというフリーウェアに...
-
Access サブフォームでの選択行...
-
Accessフォームが入力できません。
-
Accessで、一覧からクリックし...
-
クエリーの結果をフォームに表...
-
スクロールバーをVBAで操作したい
-
Accessフォームで詳細内の任意...
-
ソフトの製品コードを知りたい
-
Accessのコンボボックスでリス...
-
前のレコードの値を自動で入れたい
-
VarChar型をINT型に変換するには
-
access別のテーブルを参照して...
-
Accessで、サブフォームのある...
-
レコードセットで得た結果をサ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで、抽出したデータだ...
-
【AccessVBA】レコードセットOp...
-
PDFファイル/抽出許可され...
-
「パラメータが少なすぎます。3...
-
未審査請求包袋抽出表作成とは...
-
Excel 文字列から6桁の数値の抽出
-
X-Ripperというフリーウェアに...
-
ACCESSのクエリー抽出条件にIIF...
-
AccessのWHERE句において、変数...
-
access クエリ yes/no型のクエ...
-
ACCESS クエリ 条件以外のレ...
-
Accessの選択クエリの抽出条件...
-
PDFファイルから特定の文字を検...
-
エクセル関数で住所から丁目番...
-
アクセス 同じフィールド(テキ...
-
【エクセルVBA】 A1セルを参照...
-
Access チェックボックスを利用...
-
コンボボックス全ての値を取得...
-
PCゲーム 音声 画像 抽出方法
-
ACCESSのフォームからレポート...
おすすめ情報
特に30代の方に回答となっていますが、間違えです。すみません。
メールから文章を抽出する部分は完了しているので、後半の文章内を検索して、12桁数値と合致した所だけ抜き出す部分の方法をご教授いただきたいです。
メールから取り出しまではVBAでしています。
文章内に12桁の数値は複数あるかもしれませんが、
一番初めに出てくる12桁の数値を取り出せれば、良い感じです。
12桁以上あることはありません。
勉強不足もあり、メールから取り出すとこまではできたのですが、その文章から12桁数値を取り出す考え方がうまく思いつかないという所です。