VBScript での文字列の連結には & 演算子を使うのが一般的だが、.NET Framework の StringBuilder クラスを使って連結することもできる。
手軽に使えて & 演算子より性能も良い。大量の文字列を連結するケースでは StringBuilder の利用も検討したい。
サンプルスクリプト
次のスクリプトは、3つの文字列(“Hello”、” “、”World!“)を StringBuilder で連結して表示する。
Dim sb Set sb = CreateObject("System.Text.StringBuilder") sb.Append_3 "Hello" sb.Append_3 " " sb.Append_3 "World!" sb.Append_3 vbCrLf WScript.Echo sb.ToString
StringBuilder のインスタンス生成
StringBuilder を使うには、System.Text.StringBuilder のオブジェクトを生成する。
Set sb = CreateObject("System.Text.StringBuilder")StringBuilder のプロパティ、メソッド
StringBuilder の主なプロパティやメソッドは次のとおり。
Length プロパティ
格納されている文字列の文字数を取得する。
' "Hello World!〈CR〉〈LF〉" が格納されている場合 WScript.Echo sb.Length ' → 14
Append_3 メソッド
指定した文字列を追加する。
sb.Append_3 "Hello" sb.Append_3 " " sb.Append_3 "World!"
AppendFormat_2 メソッド
指定した書式指定に従い処理した文字列を追加する。
書式指定の対応する位置に、指定した文字列が入る。
たとえば、次のように書くと {0} の部分が “Hello” に、{1} の部分が “World!” になる。
sb.AppendFormat_2 "{0} {1}", "Hello", "World!"AppendLine メソッド(使用不可)
AppendLine メソッドは指定した文字列の末尾に改行文字を加えて追加する。
しかし VBScript からは呼び出せなかった。
仕方がないので Append_3 メソッドで代用するしかない。
sb.Append_3 "foo" sb.Append_3 vbCrLf
または AppendFormat_2 メソッドでもよい。
sb.AppendFormat_2 "{0}{1}", "bar", vbCrLfClear メソッド(使用不可)
すべての文字列を削除する Clear メソッドも呼び出せなかった。
インスタンスの再作成で代用する。
Set sb = CreateObject("System.Text.StringBuilder")ToString メソッド
格納されている文字列を取得する。
' "Hello World!" が格納されている場合 WScript.Echo sb.ToString ' → Hello World!