MS Access

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

投稿日:

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

[code]
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
[/code]

-MS Access

執筆者:

関連記事

no image

access覚書

複雑な親子フォームを作る際、テーブル設定でインデックスを2つのフィールドとも「はい (重複あり)」にすることで、親のコンボボックスに子が連動するようになった。 Excelでコピーした表データをテーブル …

no image

Accessでレコードコピー(オートナンバー除く)の決定版のコード!

Accessで、レコードのオートナンバーを除くフィールドを1行、複製(コピー)したくって、Google検索したのだけどなかなか出てこず、しかしやっと見つけた、黄金のソース・・・・。 [VBA] ADO …

もう何度もAccessの集計クエリの作成をミスって怒られている

私が悪い。反省。 自戒のメモ。 Accessの集計クエリに条件を加えたい場合、その条件をどこに書くかによって結果が全く違ってくる。 それをわかってはいるのだが・・・最大やら演算やら、細かいことを同時に …

no image

Access2013のWeb機能について(FileMakerと比較して)メモ

ここ数日、MS-Access 2013のWeb機能を勉強していたので、そのメモ。 ■フォームの書式 選択肢があまりに少ない。FMのようにデザインやテーマが用意されていない。 リスト表示のサイズが変更で …

no image

Accessでレポートを印刷したいのにフォームが印刷されるトラブル

現象:全てではなく特定のPCで、チェックリストを出力しようとすると、バックで開いているフォームがプリントされる。 毎回起きるトラブルではなく、うまく出るときもある。 最初の対策:以下のブログを参考に、 …