【ExcelVBA・マクロ】String関数の使い方|同じ文字を繰り返して文字列を作成する方法【コピペOK】

String関数の使い方 ExcelVBA

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関数を使いこなせるようになると、見やすいログや帳票を簡単に作成できるようになります。
シンプルですが便利な関数なので、ぜひ活用してみてください。

スポンサーリンク
スポンサーリンク
ExcelVBA
いがぴをフォローする

コメント

タイトルとURLをコピーしました