VBA関数のString関数を使用して、指定した数だけ文字を繰り返して出力する方法をご説明します。
Stringはデータ型で見慣れていますが、実は関数としても存在します。
同じ文字を指定した回数だけ繰り返して使用したい場合に使用すると便利です。
文字だけではなく改行を繰り返すことも可能ですので、メッセージボックス等で改行を繰り返したい場合等もコードの簡略化が出来て便利です。
繰り返し使用したい文字が「スペース」の場合も対応できますが、基本的には「Space関数」を使用します。
1.String関数の使い方
文頭でも説明していますが、String関数は指定した数だけ文字を繰り返して並べて返します。
文字だけではなく改行も繰り返すことが可能です。
構文は次のように記述します。
String(Number,Character)
「Number」は繰り返したい回数を数値型で指定します。
「Character」は繰り返したい文字、または文字列式や変数を指定します。
Nullを指定した場合は「Null」を返します。
また、文字だけではなくスペースや改行にも対応できます。
ただし、変数に格納した文字列を指定する場合は注意が必要です。
変数に2文字以上を格納している場合に、String関数で繰り返すと格納されている「先頭の文字」のみ繰り返されます。
2.サンプルコード
文字を繰り返す
「あ」を10回繰り返します。
Sub Sample1()
MsgBox String(10, "あ")
End Sub
改行を繰り返す
「vbCrLf」で改行を10回繰り返しています。
改行方法の詳細は「メッセージや文字列を改行する方法」をご覧ください。
Sub Sample2()
MsgBox "ここから改行10回" & String(10, vbCrLf) & "ここまでです。"
End Sub
スペースを繰り返す
「” “」半角スペースを10回繰り返しています。
Sub Sample3()
MsgBox "ここから" & String(10, " ") & "ここまでです。"
End Sub
文字列を格納した変数を繰り返す
文字列を格納した変数をString関数で繰り返す場合は注意が必要です。
次のコードは文字列を格納した変数を繰り返しますが、先頭の文字のみ繰り返します。
Sub Sample4()
Dim MyStr As String
MyStr = "あいうえお"
MsgBox String(10, MyStr)
End Sub
2文字以上格納された変数を繰り返したい場合はString関数ではなく、ワークシート関数のREPT関数を使用します。
Sub Sample5()
Dim MyStr As String
MyStr = "あいうえお"
MsgBox WorksheetFunction.Rept(MyStr, 10)
End Sub