VBAで文字列を扱っていると、次のようなことはありませんか?
- 同じ文字を連続で表示したい
- 区切り線を作りたい
- 桁数をそろえたい
このような場合は、String関数を使うことで解決できます。
指定した文字を繰り返して文字列を作成できる便利な関数です。
この記事では、String関数の基本から実務での活用方法まで分かりやすく解説します。
この記事でできること
- 同じ文字を繰り返し表示できる
- 区切り線を作成できる
- 文字列整形ができる
String関数とは?
String関数は、指定した文字を指定回数だけ繰り返した文字列を作成する関数です。
基本:String関数の使い方
基本構文はこちらです。
String(文字数, 文字)
| 引数 | 内容 |
|---|---|
| 文字数 | 繰り返す回数 |
| 文字 | 繰り返す文字 |
基本例
MsgBox String(5, "*")
→ *****
区切り線を作る
実務で非常によく使われます。
MsgBox String(30, "-")
→ ——————————
ゼロ埋め風の表示
MsgBox String(5, "0")
→ 00000
スペースを作成する
MsgBox "[" & String(5, " ") & "]"
→ [ ]
セルへ書き込む
Range("A1").Value = String(10, "=")
A1に「==========」を表示します。
変数を使った例
Dim lineText As String
lineText = String(20, "*")
MsgBox lineText
Asciiコードでも指定できる
文字コード指定も可能です。
MsgBox String(5, 65)
→ AAAAA
65 は「A」のASCIIコードです。
繰り返し文字の実務例
ログ表示
Debug.Print String(50, "-")
Debug.Print "処理開始"
Debug.Print String(50, "-")
見出し作成
MsgBox String(10, "=") & vbCrLf & _
"売上レポート" & vbCrLf & _
String(10, "=")
実務での活用例
- ログ整形
- 見出し作成
- 区切り線表示
- 固定長データ作成
帳票系処理でよく使われます。
注意点
① 1文字のみ繰り返される
複数文字は先頭1文字のみ使用されます。
MsgBox String(5, "AB")
→ AAAAA
② マイナス値はエラー
文字数に負数は指定できません。
③ Nullに注意
Nullはエラーになる場合があります。
String関数とSpace関数の違い
| 関数 | 内容 |
|---|---|
| String | 任意の文字を繰り返す |
| Space | スペースのみ作成 |
安全な書き方(おすすめ)
Dim cnt As Long
cnt = 10
If cnt >= 0 Then
MsgBox String(cnt, "*")
End If
よくあるエラーと対処法
① 思った文字列にならない
複数文字を指定していないか確認してください。
② 型が一致しません
文字数に数値以外が入っている可能性があります。
③ 空白が見えない
Space文字の可能性があります。
④ コードは正しいのにエラーになる
コピー時に全角文字や特殊文字が混ざることがあります。
その場合は該当行を手入力し直すと解決することがあります。
まとめ
- Stringは同じ文字を繰り返す関数
- 区切り線やログ整形で便利
- 固定長データ作成にも使える
- 実務では意外と使用頻度が高い
String関数を使いこなせるようになると、見やすいログや帳票を簡単に作成できるようになります。
シンプルですが便利な関数なので、ぜひ活用してみてください。

コメント