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

執筆者:

関連記事

no image

VBAで忘れてしまっていたことと、知らなかったこと

STOPステートメント: ブレークポイントを設定しないでもその行でコード処理を止めることができるので、Access終了->Access起動といったシチュエーションで使える。 Randomizeステート …

no image

Accessで1件ずつレコードを読んでスナップショットファイルを作ってメール送信する処理

作るのにWebに情報が無くてすごく苦労したので備忘録。 私にしかわからないかもしれないけど、見た人も何か参考になるかもしれないから、公開しよっと。 ■事前準備 1.処理を起動するフォームにボタン「調査 …

no image

ExcelからAccessの外部データの取り込みでトラブル

ExcelからAccessのクエリを使いたいとき、データ接続途中の「テーブルの選択」ウィンドウに、使いたいクエリが表示されない。 ウィンドウ内には、Accessにあるはずのクエリがあったりなかったり。 …

Accessのフォームをデザインしようとすると固まる

タイミングとしては、フォームをデザインビューにした直後、プロパティシートをクリックしたとき。それだけで数十秒待たされる。 原因は、なんとなく、気が付いている。 ついさっき、フォームで使っているクエリに …

no image

SqlServer 2008 Express R2 をインストールしようとしているのだが、最後の最後でうまくいかない

前回、試しに自分の普段のPCでSqlServer2008をインストールしたのだが、今回はサーバ(といってもXP)を対象に同様のことをしてみた。 しかしインストールの最後で「there was an e …