更新日:、 作成日:
VBA Space 関数:スペースで埋める
はじめに
Excel VBA マクロの Space 関数からスペースで埋める方法を紹介します。
Space 関数は、指定した数の半角スペースを返します。
3 なら を返します。
文字列の先頭や最後を指定の文字数になるようにスペースで埋められます。
文字列を整形するためにスペースを入れたいときなどに使用します。
スペース以外の文字で埋めるには「String 関数」を使用します。
Space 関数の引数と戻り値
Space(数)
指定した数の半角スペースを取得します。
引数「数」 | 数値を指定します。 |
戻り値の型 | 文字列型 (String) |
解説
引数「数」が 3 なら を返します。
引数「数」が負の値なら「エラー 5 プロシージャの呼び出し、または引数が不正です。」が発生します。
「Len 関数」を使用して、文字列の文字数を取得できます。これで文字列の先頭や最後を 10 文字になるようにスペースで埋めることができます。
スペース以外の文字で埋めるには「String 関数」を使用します。
使用例
Space 関数の使用例を紹介します。
スペースを取得する
スペースを取得します。
Dim s As String
s = Space(0)
Debug.Print(s) ' ""
s = Space(1)
Debug.Print(s) ' " "
s = Space(2)
Debug.Print(s) ' " "
s = Space(-1) ' エラー
スぺースを結合する
文字列にスペースを入れるには結合します。
Dim s As String
s = Space(2) & "1234"
Debug.Print(s) ' " 1234"
s = "12" & Space(2) & "34"
Debug.Print(s) ' "12 34"
s = "1234" & Space(2)
Debug.Print(s) ' "1234 "
指定した文字数になるようにスペースで埋める
10 文字未満の文字列を 10 文字になるようにスペースで埋めます。関数を作成すると便利です。
Sub 実行()
Dim 文字列 As String
文字列 = "12345"
Dim s As String
s = 文字列 & Space(10 - Len(文字列))
Debug.Print(s) ' "12345 "
s = PadLeft(文字列, 10)
Debug.Print(s) ' "12345 "
s = Space(10 - Len(文字列)) & 文字列
Debug.Print(s) ' " 12345"
s = PadRight(文字列, 10)
Debug.Print(s) ' " 12345"
End Sub
' 指定した文字列の先頭をスペースで埋める
Function PadLeft(text As String, length As Long)
If length < Len(text) Then
PadLeft = text
Exit Function
End If
PadLeft = text & Space(length - Len(text))
End Function
' 指定した文字列の最後をスペースで埋める
Function PadRight(text As String, length As Long)
If length < Len(text) Then
PadRight = text
Exit Function
End If
PadRight = Space(length - Len(text)) & text
End Function
スペース以外の文字で埋める
「String 関数」を使用して、スペース以外の指定した文字で埋められます。
Dim 文字列 As String
文字列 = "12345"
Dim s As String
s = 文字列 & String(10 - Len(文字列), "_")
Debug.Print(s) ' "12345_____"
s = String(10 - Len(文字列), "_") & 文字列
Debug.Print(s) ' "_____12345"
スポンサーリンク