
お世話になります。
Accessによる文字列抽出において、型式による抽出方法を探しています。
クエリーまたは標準モジュールへのユーザー定義関数で処理を行いたいです。
文字列例)
埼玉県小川町1100番1
東京都武蔵野市200番
抽出結果①)
埼玉県小川町
東京都武蔵野市
抽出結果②)
1100番1
200番
Instr関数にて、数値型の開始位置を調べればMid関数で抽出できるかと考えているのですが、
型式による判定の方法がわからない状況です。
このほかにも良い案があれば教えていただきたいです。
よろしくお願いいたします。
No.3ベストアンサー
- 回答日時:
お礼・補足を見て。
当該項目の場合は『Null』を返すようにしてみました。
ご検証願います。
Function cyu(a As String, b As Integer) As Variant
Dim myReg As Object
Set myReg = CreateObject("VBScript.RegExp")
myReg.Pattern = "^(\D+)(\d.+)$"
If myReg.Test(a) Then
cyu = myReg.Execute(a)(0).SubMatches(b - 1)
Else
cyu = Null
End If
Set myReg = Nothing
End Function
めぐみん_さま
回答ありがとうございます。
こちらの例文の不手際で恐縮ですが「住所」に文字か数値のどちらかしか入力されていない場合は、そのレコードで処理がストップしてしまうようです。
「住所」に”埼玉県小川町”または”1100”しかないような場合は、「抽出1」「抽出2」に何も格納しない結果とし、処理が進むように修正していただけないでしょうか?
No.1
- 回答日時:
正規表現なら。
抽出1:cyu([住所],1)
抽出2:cyu([住所],2)
Function cyu(a As String, b As Integer) As String
Dim myReg As Object
Set myReg = CreateObject("VBScript.RegExp")
myReg.Pattern = "^(\D+)(\d.+)$"
cyu = myReg.Execute(a)(0).SubMatches(b - 1)
Set myReg = Nothing
End Function

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(データベース) Accessのクエリで1フィールドの抽出条件設定をNullでなく全角半角含む空白のみの文字列でない文 1 2023/04/24 15:20
- Excel(エクセル) Indirect関数について、Formulatextで抽出した数式を参照したい。 1 2022/12/15 11:16
- Excel(エクセル) エクセルのマクロを教えてください。 1 2022/03/30 09:29
- Excel(エクセル) エクセルで2つの表を比較して、文字列が同じだが、その行のある値が違うものを抽出したい 1 2022/10/06 21:48
- Excel(エクセル) 関数で複数ある→以降の文字の抽出したい 4 2022/08/07 09:47
- Excel(エクセル) SUMIF関数について 4 2023/06/14 13:13
- Excel(エクセル) EXCELで、漢字のみ抽出する式を教えてください。 6 2022/04/27 14:40
- 求人情報・採用情報 埼玉県の臨時職員募集要件について 2 2022/04/04 20:54
- Excel(エクセル) エクセルで重複データから重複を削除して指定の列に抽出したい 11 2022/05/11 11:26
- Excel(エクセル) エクセルの関数を教えてください。② 9 2023/05/25 15:28
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで、抽出したデータだ...
-
未審査請求包袋抽出表作成とは...
-
「パラメータが少なすぎます。3...
-
エクセル VBA メール本文に指定...
-
Excel 文字列から6桁の数値の抽出
-
アクセスでエクスポートするフ...
-
ACCESSのクエリー抽出条件にIIF...
-
X-Ripperというフリーウェアに...
-
Accessで○ヶ月前以前を抽出する...
-
【AccessVBA】レコードセットOp...
-
access クエリ yes/no型のクエ...
-
Accessの選択クエリの抽出条件...
-
アクセス 同じフィールド(テキ...
-
ACCESS クエリ 条件以外のレ...
-
Triton X-100 bufferの作り方に...
-
PDFファイルから特定の文字を検...
-
PDFファイル/抽出許可され...
-
アクセスのテキストボックスでO...
-
awkでスラッシュがある動的変数...
-
Access フォームコンボボック...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで、抽出したデータだ...
-
X-Ripperというフリーウェアに...
-
Excel 文字列から6桁の数値の抽出
-
未審査請求包袋抽出表作成とは...
-
PDFファイル/抽出許可され...
-
PDFファイルから特定の文字を検...
-
ACCESSのクエリー抽出条件にIIF...
-
エクセル VBA メール本文に指定...
-
「パラメータが少なすぎます。3...
-
access クエリ yes/no型のクエ...
-
AccessのWHERE句において、変数...
-
ACCESS クエリ 条件以外のレ...
-
アクセス 同じフィールド(テキ...
-
【AccessVBA】レコードセットOp...
-
エクセルで色の付いたセルを抽...
-
Accessの選択クエリの抽出条件...
-
Access フォームコンボボック...
-
Access チェックボックスを利用...
-
PCゲーム 音声 画像 抽出方法
-
エクセル関数で住所から丁目番...
おすすめ情報
めぐみん_ さま
回答ありがとうございます。教えていただいた内容で結果の通り取得できました。
ただ、「住所」に文字と数値のどちらか一方しかないものがある場合、そのレコードで処理が止まってしまうようです。
私の例文にはそのようなパタンを記載していなかったので恐縮なのですが、
「住所」に ”埼玉県小川町”のみや”1100”しかない状態でも処理が実行されるように修正いただけないでしょうか。また、この状態の場合は、「抽出1」「抽出2」に何も格納されない結果を希望します。