『Excel VBA 表計算とプログラミング学習サイト』では、アフィリエイトプログラムを利用して商品を紹介しています。

【VBA】String関数で同じ文字を繰り返します

この記事では、VBA の String 関数の基本的な使い方をサンプルコード付きで解説します。記事の後半では、String 関数を使って簡単なチャートを作成してみます。

【VBA】String

VBAString

String(数値,文字列)

と記述して、引数として渡した文字列の先頭文字を指定回数だけ繰り返すシンプルな関数です。たとえば

'[VBA] String関数のサンプルコード
Sub StringTest_1()
  Debug.Print String(3, "ABCDE")
End Sub

を実行すると「AAA」というように文字列 “A” を 3 回繰り返して表示されます。2つめの引数に ASCII コードまたは JIS コードを指定することもできます。たとえば

'[VBA] ASCIIの66番に対応する文字列を表示
Sub StringTest_2()
  Debug.Print String(5, 66)
End Sub

と書けば、ASCII で 66 に対応するアルファベット B が 5 個並びます。
 
String関数を使って楽しいマクロを作ってみましょう。

'[VBA] ☆マークを並べます
Sub Star()
  Dim mymsg As String
  mymsg = "好きな数を入力してね"
  x = Application.InputBox(prompt:=mymsg, Type:=1)
  Debug.Print String(x, "☆")
End Sub

Star() を実行するとダイアログボックスで数字の入力を促されるので、たとえば「 5 」と入力すると「☆☆☆☆☆」というように☆が 5 つ並びます。 

Stringでチャートを作成します

もう少し実践的なマクロを作ってみましょう。
下のようなワークシートを用意してくださいな。
 
VBAのString関数売上チャートA
 
それぞれの営業担当者さんの売上が C 列に数値で入力されています、
これをわかりやすくチャートで表示させてみます。

'[VBA] 売上をチャートで表示させます
Sub Chart()
  Dim j As Integer
  Dim x As Integer
  For j = 3 To 7
    x = Cells(j, 3).Value / 20
    Cells(j, 4) = String(x, "■")
  Next j
End Sub

売上 20 ごとに ■ 1 個が表示されるようにしています。変数 x を整数型で宣言してあるので、割り算した数値が小数であっても、x に入れたときに自動的に整数の値となりますよ。まあとにかく、Chart() を実行すると …
 
VBAのString関数売上チャートB
 
売上がグラフで表示されましたね。それでは、また次回お会いしましょう。
 
≫【VBA】Lenで文字数をカウント

コメント

  1. あとりえこばと より:

    【AI解説】VBAのString関数の使い方

    生徒: 先生、String関数って何ですか? どうやって使いますか?

    先生: String関数は、VBAで文字列を指定した回数繰り返すために使用される関数です。例えば、特定の文字を10回繰り返したい場合、String関数を使用することで簡単に実現できます。

    生徒: なるほど、具体的な使い方を教えてください。

    先生: もちろんです。まず、String関数は以下のような構文を持っています。

    String(number, character)

    numberは繰り返したい回数を指定します。characterは繰り返す文字を指定します。

    生徒: なるほど、例えばアスタリスク(*)を5回繰り返す場合はどうすればいいですか?

    先生: それは簡単です。次のようなコードを書くことができます。

    Sub StringExample()
        Dim repeatedString As String
        repeatedString = String(5, "*")
        MsgBox repeatedString
    End Sub

    このコードでは、String(5, “*”)でアスタリスク(*)を5回繰り返します。そして、結果をrepeatedString変数に代入し、MsgBox関数を使用して結果を表示しています。

    生徒: なるほど、これでアスタリスクが5回表示されるんですね。もう少し複雑な使い方はできますか?

    先生: もちろんです。例えば、特定の文字列を複数回繰り返す場合もString関数を使うことができます。以下の例を見てください。

    Sub RepeatString()
        Dim repeatedString As String
        Dim originalString As String
        Dim repetitionCount As Integer
        
        originalString = "Hello, "
        repetitionCount = 3
        repeatedString = String(repetitionCount, originalString)
        
        MsgBox repeatedString
    End Sub

    このコードでは、originalString変数に”Hello, “という文字列を代入し、repetitionCount変数に3を代入しています。そして、String(repetitionCount, originalString)を使ってoriginalStringを3回繰り返します。結果として”Hello, Hello, Hello, “という文字列が表示されます。

    生徒: 分かりました!String関数を使うことで文字列を指定した回数繰り返すことができるんですね。ありがとうございました!

    先生: どういたしまして!String関数は文字列処理において便利な関数ですので、ぜひ活用してみてください。もし他に質問があればどうぞ。