カテゴリ: VB.NET 更新日: 2026/02/23

VB.NETで文字列結合を高速化!StringBuilderクラスの使い方を完全ガイド

VB.NETでStringBuilderを使って効率的に文字列を操作する方法
VB.NETでStringBuilderを使って効率的に文字列を操作する方法

先生と生徒の会話形式で理解しよう

生徒

「VB.NETで、たくさんの文字をくっつけて長い文章を作りたいんですけど、ただ &(アンド)で繋げるだけで大丈夫ですか?」

先生

「数回なら問題ありませんが、何百回、何千回と繰り返すなら StringBuilder(ストリングビルダー)という専用の道具を使うのが正解です。」

生徒

「普通の繋ぎ方と何が違うんですか?」

先生

「実は普通の文字列結合は、裏側でパソコンが一生懸命作り直しをしているので遅いんです。今日はその効率的な方法を学びましょう!」

1. StringBuilder(ストリングビルダー)とは?

1. StringBuilder(ストリングビルダー)とは?
1. StringBuilder(ストリングビルダー)とは?

VB.NETの世界でStringBuilder(ストリングビルダー)とは、文字列を効率よく組み立てるための「専用の作業台」のようなものです。通常、プログラミングにおいて文字列(文字の集まり)は、一度作ると中身を書き換えることができないというルールがあります。

例えば「あ」という文字に「い」を足して「あい」にする際、パソコンは「あ」を書き換えるのではなく、新しく「あい」という箱を作り直しています。これを何万回も繰り返すと、パソコンは新しい箱を作る作業だけで手一杯になり、動作が非常に重くなってしまいます。そこで登場するのが StringBuilder です。これは一つの箱の中で中身をどんどん書き足していけるため、無駄な作り直しが発生せず、高速な処理が可能になります。

2. StringBuilderを使うための準備

2. StringBuilderを使うための準備
2. StringBuilderを使うための準備

StringBuilderは、VB.NETの標準的な道具箱の中に少し奥まった場所にしまってあります。使うためには「System.Text(システム・テキスト)」という名前の場所から呼び出す必要があります。これをインポートと言いますが、初心者の方は「特殊な道具を使うための儀式」だと思ってください。

プログラムの冒頭に一行書くだけで、StringBuilderという便利な魔法が使えるようになります。もしこれを書かずに使おうとすると、パソコンが「StringBuilderって何?」と迷子になってしまうので注意しましょう。まずはこの準備からマスターすることが大切です。

3. Appendメソッドで文字を後ろに追加する

3. Appendメソッドで文字を後ろに追加する
3. Appendメソッドで文字を後ろに追加する

StringBuilderの最も基本的な使い方は、Append(アペンド)メソッドです。これは「後ろに付け足す」という意味があります。新しい作業台を用意して、そこにどんどん文字を置いていくイメージでコードを書いてみましょう。


' StringBuilderの作業台を準備します
Dim sb As New System.Text.StringBuilder()

' Appendで文字を順番にくっつけます
sb.Append("こんにちは")
sb.Append("今日は")
sb.Append("良い天気ですね")

' 最後に一つの文字列として取り出します
Dim result As String = sb.ToString()
Console.WriteLine(result)

実行結果は以下のようになります。


こんにちは今日は良い天気ですね

このように、一つの変数 sb に対して何度も追加の命令を出せます。最後に ToString() を使うことで、作業台の上の文字を一つの文章として完成させることができます。

4. AppendLineで改行を含めて追加する

4. AppendLineで改行を含めて追加する
4. AppendLineで改行を含めて追加する

文章を作るとき、一行ずつ改行したい場面も多いですよね。そんな時に便利なのが AppendLine(アペンド・ライン) メソッドです。これは文字を追加した後に、自動的に「ここから次の行ですよ」という印(改行コード)を付けてくれます。

手動で改行記号を入れる必要がないので、コードがとてもスッキリします。リスト形式のデータを作ったり、メールの本文を組み立てたりする時に非常によく使われるテクニックです。実際の書き方を見てみましょう。


Dim report As New System.Text.StringBuilder()

report.AppendLine("--- 業務報告 ---")
report.AppendLine("1. 開発会議に出席")
report.AppendLine("2. プログラムの修正")
report.AppendLine("3. テストの実施")

Console.WriteLine(report.ToString())

実行結果は以下のようになります。


--- 業務報告 ---
1. 開発会議に出席
2. プログラムの修正
3. テストの実施

このように、改行が自動で入るため、人間にとっても読みやすい文章が簡単に作れます。初心者がつまずきやすい「改行コード」の扱いを気にしなくて済むのが大きなメリットです。

5. Insertメソッドで指定した場所に文字を割り込ませる

5. Insertメソッドで指定した場所に文字を割り込ませる
5. Insertメソッドで指定した場所に文字を割り込ませる

StringBuilderの凄いところは、後ろに足すだけでなく、途中に文字を割り込ませることができる点です。これを Insert(インサート) メソッドと言います。何文字目に差し込むか、という番号を指定して使います。

プログラミングの世界では、最初の文字を 0番目 と数えるルールがあります(ゼロオリジン)。例えば「2番目の位置に差し込む」という指示を出すことで、後から文章を修正することが可能になります。少し高度に見えますが、使いこなすと非常に強力な機能です。


Dim greeting As New System.Text.StringBuilder("VB.NET学習")

' 6文字目に「を頑張る」という言葉を割り込ませます
greeting.Insert(6, "を頑張る")

Console.WriteLine(greeting.ToString())

実行結果は以下のようになります。


VB.NETを頑張る学習

このように、一度作った文章の途中を自由自在に加工できるのが StringBuilder の特徴です。もし普通の文字列結合でこれを行おうとすると、文章を一度バラバラにしてから繋ぎ直すという大変な作業が必要になりますが、作業台の上なら差し込むだけで完了します。

6. Replaceメソッドで文字を置換する

6. Replaceメソッドで文字を置換する
6. Replaceメソッドで文字を置換する

文章の中にある特定の文字を別の文字に置き換えたいときは、Replace(リプレイス) メソッドを使います。例えば、文章の中の「間違い」を見つけて「正解」に書き換えるような処理です。

この機能は、テンプレート(ひな形)となる文章を一部だけ書き換えて、大量の通知文を作るときなどに役立ちます。一瞬で全ての指定文字が変わるので、まるでワープロソフトの置換機能のような便利さがあります。以下のコードで試してみましょう。


Dim template As New System.Text.StringBuilder("こんにちは、様。")

' 「様」という文字を「田中様」に置き換えます
template.Replace("様", "田中様")

Console.WriteLine(template.ToString())

実行結果は以下のようになります。


こんにちは、田中様。

作業台の上で直接文字を書き換えているため、メモリというパソコンの記憶装置を無駄遣いせず、サクサクと動くプログラムになります。大量のデータを扱う際に、この「無駄のなさ」が大きな差となって現れてきます。

7. 繰り返し処理(ループ)での驚異的なスピード

7. 繰り返し処理(ループ)での驚異的なスピード
7. 繰り返し処理(ループ)での驚異的なスピード

StringBuilderが一番の力を発揮するのは、For文(フォーぶん) などの繰り返し処理で、何千回も文字を繋げる時です。初心者の方がよくやってしまうのが、ループの中で & を使って文字を繋げることですが、これは非常に時間がかかる原因になります。

1万回文字をくっつける場合、普通の結合では数秒かかることがありますが、StringBuilderなら一瞬(0.01秒以下)で終わります。パソコンに負担をかけない「優しいプログラミング」をするなら、StringBuilderは避けて通れない必須の知識と言えるでしょう。データ件数が増えれば増えるほど、その効果を実感できるはずです。

8. Clearメソッドで中身をリセットする

8. Clearメソッドで中身をリセットする
8. Clearメソッドで中身をリセットする

同じ StringBuilder の作業台を使いまわしたい時もあります。そんな時は Clear(クリア) メソッドを使いましょう。これを呼ぶと、作業台の上の文字が全て綺麗に片付けられ、空っぽの状態になります。

新しい作業台(New StringBuilder)を何度も作り直すよりも、一つの作業台を掃除して使い続ける方がパソコンにとっては効率が良いのです。プログラムを長く動かし続けるようなシステムを開発するときは、こうした細かい「お掃除」の意識が、安定した動作に繋がります。

カテゴリの一覧へ
新着記事
New1
ASP.NET
ASP.NET Web APIとMVCの違いを完全解説!初心者でもわかるWebアプリとAPIの基本
New2
ASP.NET
ASP.NET開発環境構築|コマンドライン(dotnet CLI)でASP.NETプロジェクトを作成する方法
New3
VB.NET
VB.NETで文字列を綺麗に整える!String.Formatと文字列補間の使い方
New4
ASP.NET
LinuxでASP.NET Coreを動かす手順|初心者でもわかる開発環境構築ガイド
人気記事
No.1
Java&Spring記事人気No1
VB.NET
VB.NETのJoinメソッドを徹底解説!バラバラの文字列を一つに結合する方法
No.2
Java&Spring記事人気No2
VB.NET
VB.NETの文字列置換を完全解説!初心者でもわかるReplaceメソッドの使い方
No.3
Java&Spring記事人気No3
VB.NET
VB.NETの配列(Array)の作り方と基本操作を徹底解説!初心者でもわかる入門ガイド
No.4
Java&Spring記事人気No4
VB.NET
VB.NETで文字列結合を高速化!StringBuilderクラスの使い方を完全ガイド
No.5
Java&Spring記事人気No5
VB.NET
VB.NETのDictionaryを完全ガイド!初心者でもわかる辞書の基本と応用
No.6
Java&Spring記事人気No6
VB.NET
VB.NETのList(Of T)の使い方を完全ガイド!初心者が最初に覚えるべきリスト操作
No.7
Java&Spring記事人気No7
VB.NET
VB.NETのTrimで空白削除!初心者向け文字列整形完全ガイド
No.8
Java&Spring記事人気No8
VB.NET
VB.NETでStaticメソッドを定義する方法と活用例