更新日:、 作成日:

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"