概要
String
関数は、Excel VBAで指定された文字を指定回数繰り返して生成された文字列を返す関数です。文字列の初期化やデータのフォーマット時に使用され、特定のパターンを持つ文字列を簡単に作成できます。たとえば、ダッシュで区切られた行を生成したり、スペースで埋められた特定の長さの文字列を作成する際に便利です。
構文
String(長さ, 文字)
パラメータ
-
長さ
繰り返す文字の数を指定します。0以上の整数でなければなりません。
-
文字
繰り返される文字を指定します。文字列の最初の文字のみが使用され、文字コード(整数値)も指定可能です。
戻り値
String
関数は、指定された長さ分、指定した文字を繰り返した結果の文字列を返します。
説明
String
関数は、指定された文字を繰り返して文字列を生成します。使用頻度の高い用途には、データの初期化、視覚的な区切り線の生成、固定長のテキストフィールドのフォーマットなどがあります。
-
長さが0の場合、空の文字列を返します。
-
文字が空文字の場合や、指定が整数値の場合、それぞれの使用方法に応じて異なる結果が得られます。
使用例
基本的な使用例 - 文字を繰り返す
Sub RepeatCharacter()
Dim result As String
result = String(10, "*")
MsgBox result ' 結果: ""
End Sub
この例では、アスタリスク(*)を10回繰り返して、10個のアスタリスクからなる文字列を生成しています。
ダッシュで区切られた行を生成
Sub GenerateDashedLine()
Dim dashedLine As String
dashedLine = String(50, "-")
Debug.Print dashedLine ' 結果: "--------------------------------------------------"
End Sub
この例では、50個のダッシュ(-)で構成された区切り線を生成します。
スペースで埋めた固定長の文字列を作成
Sub CreateFixedLengthString()
Dim name As String
Dim paddedName As String
name = "John"
paddedName = name & String(20 - Len(name), " ")
MsgBox "[" & paddedName & "]" ' 結果: "[John ]"
End Sub
この例では、「John」という名前を固定長の20文字にするため、末尾にスペースを追加しています。
繰り返しのコードを使った文字列生成
Sub RepeatUsingAscii()
Dim asciiString As String
asciiString = String(5, 65) ' ASCIIコード65は"A"
MsgBox asciiString ' 結果: "AAAAA"
End Sub
文字として「A」のASCIIコード(65)を指定し、5回繰り返しています。
応用例
視覚的な区切り線を使った出力整形
出力内容を視覚的に整理するための区切り線を簡単に作成します。
Sub PrintReportWithLines()
Dim header As String
Dim line As String
header = "Report Title"
line = String(30, "=")
Debug.Print line
Debug.Print header
Debug.Print line
End Sub
このスクリプトでは、ヘッダーの上下に区切り線を挿入し、レポートの見た目を整えています。
注意点
-
String
関数で生成される文字列の長さは、メモリ制約に依存するため、極端に長い文字列の生成には注意が必要です。 -
文字に整数値を指定した場合、その数値はASCIIコードとして解釈されます。意図した文字が表示されるか確認する必要があります。
-
繰り返す文字列が複数の文字からなる場合、先頭の1文字のみが使用されるため、複数文字を繰り返すには他の方法を使用する必要があります。
String
関数は、文字列を簡単に繰り返し生成できる便利なツールで、定型フォーマットの出力や特定の文字パターンの作成に広く利用されています。これを利用することで、出力の視認性やデータ整形の効率を大幅に向上させることができます。