[Excel関数]文字列の中から数字のみを除去(削除)するREMOVENカスタムワークシート関数
2022年3月14日
概要
文字列の中から数字だけを除去するREMOVENカスタムワークシート関数を作成しました。
ワークシート関数だけで(VBAを使用せずに)同じことをしたい場合はコチラの記事を参照して下さい。
数字ではなく任意の文字を削除する場合はREMOVEカスタムワークシート関数を、数字だけを抽出する場合はEXTRUCTNカスタムワークシート関数をご使用ください。
REMOVEN関数の動作例は下記の通りです。
機能
文字列の中からアラビア数字のみを除去します。半角数字のみを除去するか、半角と全角の両方を除去するかを指定できます。
構文
REMOVEN(文字列 , [全角数字を除去] )
引数 | 説明 | 引数の指定 | 既定値 |
---|---|---|---|
文字列 | 除去対象の文字列を指定します。 | 必須 | (無し) |
全角数字を除去 | 全角数字も除去する場合はTRUE、除去しない場合はFALSEを指定します。省略した場合はTRUEが指定されます。 | 省略可能 | TRUE |
コード
下記のコードを全てコピーし、標準モジュール等に貼り付けて下さい。下記のコード表示欄の右上に「Copy」ボタンがありますのでご使用下さい。なお、標準モジュールが何だか分からない方は、 Excelのカスタムワークシート関数を使用する方法 を参照して下さい。' [Excel関数]文字列の中から数字のみを除去(削除)するREMOVENカスタムワークシート関数
' Copyright (c) 2020-2025 黒箱
' This software is released under the MIT License;.
' このソフトウェアはMITライセンスの下でリリースされています。
'* @fn Public Function REMOVEN(ByVal Text As String, Optional ByVal WideRemoval As Boolean = True) As Variant
'* @brief 文字列の中からアラビア数字のみを除去します。
'* @param[in] Text 除去対象の文字列を指定します。
'* @param[in] WideRemoval 全角数字も除去する場合はTRUE、除去しない場合はFALSEを指定します。省略した場合はTRUEが指定されます。
'* @return Variant 除去後の文字列を返します。
'*
Public Function REMOVEN(ByVal Text As String, Optional ByVal WideRemoval As Boolean = True) As Variant
'引数Textが空白のみなら処理なし
If (Trim(Text) = "") Then
REMOVEN = Text
Exit Function
End If
'変換文字のパターン設定
Dim Pattern As String '変換対象文字のパターン(Like右辺値)
If (WideRemoval) Then
Pattern = "[0-90-9]" '#の明確な仕様が不明であったため保険
Else
Pattern = "[0-9]"
End If
'除去
Dim i As Long
Dim Char As String '引数Textの文字を1文字ずつ抽出する際の格納先
Dim Result As String '戻り値
For i = 1 To Len(Text)
Char = Mid(Text, i, 1)
If Not (Char Like Pattern) Then Result = Result & Char
Next i
REMOVEN = Result
End Function
プログラムの利用について
本プログラムのライセンスは「The MIT License」を適用しています。
本プログラムは無償で利用できますが、本プログラム内の著作権表示及びライセンス表示は削除せずに表示しておいて下さい。
必須ではございませんが、本ホームページのプログラムを書籍またはホームページ等で一般公開したい方は、お問い合わせフォームよりご連絡頂けると幸いです。
スポンサーリンク
Excelカスタム関数,Excel関数MITライセンス,カスタムワークシート関数,ソースコード,幾何学
Posted by 黒箱
この記事のトラックバックURL
スポンサーリンク
カテゴリー
スポンサーリンク
-
ホーム -
上へ
PAGE TOP
ディスカッション
コメント一覧
まだ、コメントがありません