トップへ(mam-mam.net/)

文字列を扱う関数 ~Excelワークシート関数,VBA関数

文字列を扱う関数 ~Excelワークシート関数,VBA関数

エクセルで文字列を扱うワークシート関数、VBA関数をまとめました。

ワークシート関数

(参考) VBAからも
Application.WorksheetFunction.ワークシート関数()
とすると、ワークシート関数を使うことが出来ます。

関数名 説明
= LEN(文字列) 文字数を返す = LEN("文字列")
3 を返す
= MID(文字列, 開始位置, 長さ) 開始位置から長さ分の文字列を返す = MID("文字列です",2,3)
"字列で" を返す
= FIND(検索文字列, 対象文字列, [検索開始位置]) 対象文字列 に存在する 検索文字列 の位置を返す
大文字小文字を区別する
= FIND("文字", "ここの文字列から")
4 を返す

= FIND("BC", "ここの文字列からabcd")
#VALUE! を返す
= SEARCH(検索文字列, 対象文字列, [検索開始位置]) 対象文字列 に存在する 検索文字列 の位置を返す
大文字小文字を区別しない
= SEARCH("BC", "ここの文字列からabcd")
10 を返す
= REPLACE(置換対象文字列, 開始位置, 長さ, 置換文字列) 置換対象文字列 の 開始位置 から 長さ 分の位置にある文字列を、置換文字列 に置換する = REPLACE("置換対象文字列", 3, 2, "された")
"置換された文字列" を返す
= SUBSTITUTE(置換対象文字列, 置換前文字列, 置換後文字列) 置換対象文字列 から 置換前文字列 を探し、置換後文字列 に置換する = SUBSTITUTE("置換対象文字列", "対象", "された")
"置換された文字列" を返す
= TEXT(値, 書式設定文字列) 値が書式設定文字列に従って書式設定される = TEXT(DATE(2020,10,30),"YYYY/MM/DD(AAA)")
"2020/10/30(金)" を返す
= TRIM(文字列) 前後の全角、半角の空白文字を削除する = TRIM("  あいうえお  ")
"あいうえお" を返す
= REPT(文字列, 回数) 文字列を指定回数繰り返す文字列を返す = REPT("文字",3)
"文字文字文字" を返す
= UPPER(文字列) (全角半角の)文字列を大文字にする = UPPER("abc")
"ABC" を返す
= Lower(文字列) (全角半角の)文字列を小文字にする = LOWER("ABC")
"abc" を返す

VBA関数

関数名 説明
Len(文字列) 文字数を返す Dim i As Long
i = Len("文字列")
3 を返す
Mid(文字列, 開始位置, 長さ) 開始位置から長さ分の文字列を返す Dim st As String
st = Mid("文字列です",2,3)
"字列で" を返す
InStr([検索開始位置], 対象文字列, 検索文字列, [比較モード]) 対象文字列 に存在する 検索文字列 の位置を返す

比較モードに指定できる値
vbUseCompareOption (-1)
Option Compareステートメントの設定を使用して比較
vbBinaryCompare (0)
バイナリ比較(規定値)
vbTextCompare (1)
テキスト比較
vbDatabaseCompare (2)
Microsoft Access のみ
データベース内の情報に基づいて比較
i = InStr("文字列", "字")
2 を返す

i = InStr(1, "ここから文字列の位置を探してもらう", "文字列", vbTextCompare)
5 を返す

i = InStr(1, "ここから文字列の位置を探してもらうabcde", "BC", vbTextCompare)
19 を返す

i = InStr(1, "ここから文字列の位置を探してもらうabcde", "BC", vbBinaryCompare)
0 を返す
Replace(置換対象文字列, 置換前文字列, 置換後文字列, [開始位置], [置換数], [比較モード]) 置換対象文字列 から 置換前文字列 を探し、置換後文字列 に置換する

比較モードに指定できる値
vbUseCompareOption (-1)
Option Compareステートメントの設定を使用して比較
vbBinaryCompare (0)
バイナリ比較(規定値)
vbTextCompare (1)
テキスト比較
vbDatabaseCompare (2)
Microsoft Access のみ
データベース内の情報に基づいて比較
st = Replace("置換対象文字列", "対象", "された")
"置換された文字列" を返す
Format(値, 書式) 値が書式設定文字列に従って書式設定される Dim st As String
st = Format(1234.567, "0.00")
"1234.57" を返す

Dim st As String
st = Format(DateSerial(2000, 4, 4), "yyyy/mm/dd")
"2000/04/04" を返す
Trim(文字列) 前後の全角、半角の空白文字を削除する Dim st As String
st = Trim("  あいうえお  ")
"あいうえお" を返す
LTrim(文字列) 左側の全角、半角の空白文字を削除する Dim st As String
st = LTrim("  あいうえお  ")
"あいうえお  " を返す
RTrim(文字列) 右側の全角、半角の空白文字を削除する Dim st As String
st = RTrim("  あいうえお  ")
"  あいうえお" を返す
UCase(文字列) (全角半角の)文字列を大文字にする Dim st As String
st = UCase("abc")
"ABC" を返す
UCase(文字列) (全角半角の)文字列を小文字にする Dim st As String
st = LCase("ABC")
"abc" を返す