更新日:、 作成日:
VBA String 関数:指定した文字で埋める
はじめに
Excel VBA マクロの String 関数から指定した文字で埋める方法を紹介します。
String 関数は、文字を指定した数だけ並べて返します。
3 個の A なら AAA を返します。
文字列を 0 や空白で埋めたいときに使用します。
空白 (スペース) で埋めたいときは「Space 関数」を使用します。
文字列を結合するには「文字列を結合する」をご覧ください。
String 関数の引数と戻り値
String(数, 文字)
文字を指定した数だけ繰り返した文字列を取得します。
引数「数」 | 数値を指定します。 |
引数「文字」 | 文字や文字コード (Shift_JIS) を指定します。 |
戻り値の型 | 文字列型 (String) |
解説
引数「数」が 3 なら AAA のように、引数「文字」を 3 回繰り返した文字列を返します。
引数「数」が負の値なら「エラー 5 プロシージャの呼び出し、または引数が不正です。」が発生します。
引数「文字」には文字または文字コード (Shift_JIS) の両方を指定できます。
引数「文字」に複数の文字を指定したときは 1 文字目の文字で並べられます。vbCrLf なら vbCr になります。
引数「文字」が空文字 "" なら「エラー 5 プロシージャの呼び出し、または引数が不正です。」が発生します。
「Len 関数」を使用して、文字列の文字数を取得できます。これで文字列の先頭や最後を 10 文字になるように引数「文字」で埋めることができます。
文字コードを取得するには「Asc 関数」を使用します。
使用例
String 関数の使用例を紹介します。
指定した数の文字を取得する
指定した数の文字を取得します。
Dim s As String
s = String(0, "あ")
Debug.Print(s) '
s = String(1, "あ")
Debug.Print(s) ' あ
s = String(3, "あ")
Debug.Print(s) ' あああ
s = String(3, "あい")
Debug.Print(s) ' あああ
s = String(-1, "あ")
Debug.Print(s) ' エラー
s = String(1, "")
Debug.Print(s) ' エラー
指定した数の文字コードの文字を取得する
指定した数の文字コードの文字を取得します。
Dim i As Integer
Dim s As String
i = Asc("a")
Debug.Print(i) ' 97
s = String(3, 65)
Debug.Print(s) ' AAA
i = Asc("あ")
Debug.Print(i) ' -32096
s = String(3, -32096)
Debug.Print(s) ' あああ
指定した文字数になるように埋める
10 文字未満の文字列を 10 文字になるように文字で埋めます。関数を作成すると便利です。
Sub 実行()
Dim 文字列 As String
文字列 = "12345"
Dim s As String
s = 文字列 & String(10 - Len(文字列), "_")
Debug.Print(s) ' "12345_____"
s = PadLeft(文字列, 10, "_")
Debug.Print(s) ' "12345_____"
s = String(10 - Len(文字列), "_") & 文字列
Debug.Print(s) ' "_____12345"
s = PadRight(文字列, 10, "_")
Debug.Print(s) ' "_____12345"
End Sub
' 指定した文字列の先頭を文字で埋める
Function PadLeft(text As String, length As Long, char As String)
If length < Len(text) Then
PadLeft = text
Exit Function
End If
PadLeft = text & String(length - Len(text), char)
End Function
' 指定した文字列の最後を文字で埋める
Function PadRight(text As String, length As Long, char As String)
If length < Len(text) Then
PadRight = text
Exit Function
End If
PadRight = String(length - Len(text), char) & text
End Function
スポンサーリンク