MS Access

VBAで英字混じりの引数から数字のみを取り出す関数

投稿日:

たとえば、abcABC123456XYGという引数から、123456のみを取り出したい。
VBAの組み込み関数で、適当なのがありそうだけど、無いみたい。
カスタム関数を作るにも、これはという情報がググっても見つからなかったので、自作してメモ。

Function FindNumberRegExp(ARG As Variant)
'汎用 引数から数字のみを取り出して返す
'    Dim reg As New RegExp       '// 正規表現クラスオブジェクト
If Not IsNull(ARG) Then
Set reg = CreateObject("VBScript.RegExp")
<pre><code>    '// 検索条件=数字以外を抽出
    reg.Pattern = "[^0-9]"
    '// 文字列の最後まで検索する
    reg.Global = True
    '// 指定セルの数字以外の文字を空文字に置き換える
    FindNumberRegExp = reg.Replace(ARG, "")
End If</code></pre>
End Function

-MS Access

執筆者:

関連記事

FileMakerで画像ファイルを一括インポート

私はAccessとの付き合いが長いので推しソフトなのだが、FileMakerはAccessに無い機能や表示が多いうえ、デザインの自由度になるとAccessを凌駕するので、まったく侮れない。 最近、Fi …

Accessで複数レコードを1レコードにまとめる(運送会社送り状作成のため

Accessに入れてある楽天の注文データをもとに、運送屋さんの送り状伝票を作ろうと思い立った。 しかし、楽天の注文データは、同一の受注番号で複数の商品に分かれている。 例えば一人の人が3点買い物をした …

no image

Accessクエリでのフィールド名は同じので重複できる

Accessではクエリの中で同じフィールド名を使えない! ・・・とずっと思っていた。 なので、テーブルで使っているフィールド名でクエリの結果を出す必要があった際には、クエリを二つ作ってそれぞれ前処理 …

no image

AccessからExcelフォーマットでファイルに出力するサンプルコード

Excelから外部データの接続の際に,ユーザー定義関数を含んだクエリを指定するとエラーになったので、こんなやり方で対処。 Private Sub btnB2_Click() DoCmd.OutputT …

no image

Accessでのキーワード検索(フィルタ)とブックマークの関係備忘録

Accessでのキーワード検索(フィルタ)とブックマークの関係を作るのに苦労したのでここに備忘録。 ポイントは、検索ではなくフィルタを使うことと、BookmarkではなくIDをグローバル変数に保存して …