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

【VBA】可変長文字列と固定長文字列

この記事では VBA文字列型変数 (String) について解説します。

【VBA】String(文字列型変数)

VBA の String には文字列を格納できます。文字列には可変長文字列固定長文字列の 2 種類がありますが、一般的には可変長文字列を用いるので、よほど特殊なことをするのでない限り固定長について覚える必要はないと思います(もちろん解説はしておきます)。

【VBA】可変長文字列

String にデータを入れるときは文字列を “(ダブルクォーテーション)で括ります。

'[VBA] 可変長文字列サンプルコード(1)
Sub String_Test_1()
  Dim mystr As String
  mystr = "Kobato"
  Debug.Print mystr
End Sub

'String_Test_1の実行結果:
'Kobato

String_Test_1() を実行すると Kobato が表示されます。
2 つ以上の文字列データを結合するときは & を使います。

'[VBA] 可変長文字列サンプルコード(2)
Sub String_Test_2()
  Dim mystr1 As String
  Dim mystr2 As String
  mystr1 = "こばとちゃん"
  mystr2 = "と"
  mystr3 = "かばねちゃん"
  Debug.Print mystr1 & mystr2 & mystr3
End Sub

'String_Test_2の実行結果:
'こばとちゃんとかばねちゃん

String_Test_2() を実行すると「こばとちゃんとかばねちゃん」が表示されますよ。え? かばねちゃんが誰かって? こばとの姉です。大学で氏姓(うじかばね)について研究してるから「かばねちゃん」と呼ばれてます。もちろん本名ではありませんよ。あくまで呼び名です … て、そんなことはどうでもいいのです。次は固定長文字列について説明します。
 
➡【VBA】Debug.Printの使い方

【VBA】固定長文字列

VBA で固定長文字列を宣言するときは String の後に「*」(アスタリスク)と文字数を記述します。

'[VBA] 固定長文字列サンプルコード
Sub String_Test_3()
  Dim mystr As String * 3
  mystr = "ABCDE"
  Debug.Print mystr
End Sub

'String_Test_3の実行結果:
'ABC

String_Test_3() では mystr の文字数を 3 に設定しているので、”ABCDE” という文字を入れても 3 文字分の ABC しか表示されません。逆に “A” という 1 文字だけ入れると、余った 2 文字ぶんをスペースで埋めることになります。

コメント

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

    【AI解説】VBAのString

    [ChatGPT] VBAにおける”String”は、テキストや文字列のデータを格納するためのデータ型です。String型の変数は、文字列データを格納するためのコンテナとして機能します。文字列は、一連の文字を表すテキストデータであり、”Hello, World!”や”12345″などのように表現されます。String型の変数を宣言するには、次のようにします:

    Dim myString As String

    この宣言により、”myString”という名前のString型変数が作成されます。この変数は、後でテキストデータを格納するために使用できます。文字列の値を変数に代入するには、代入演算子(=)を使用します。例えば、次のようにして変数に文字列を代入できます:

    myString = "Hello, World!"

    文字列を変数に代入した後は、その変数を操作したり、他の変数と組み合わせたりすることができます。文字列変数には、さまざまな操作を行うことができます。以下に、いくつかの一般的な文字列操作の例を示します:
     
    1.文字列の結合(Concatenation):複数の文字列を結合するには、&演算子を使用します。

    Sub ConcatenateString()
        Dim greeting As String
        Dim name As String
        greeting = "Hello, "
        name = "John"
        MsgBox greeting & name
    End Sub

    この例では、”Hello, “という文字列と”name”変数の値を結合し、”Hello, John”という結果が表示されます。
     
    2.文字列の長さの取得:Len関数を使用して文字列の長さを取得できます。

    Sub LenString()
        Dim myString As String
        Dim length As Integer
        myString = "Hello"
        length = Len(myString)
        MsgBox length
    End Sub

    この例では、”Hello”という文字列の長さを取得し、その結果である5が表示されます。
     
    3.文字列の一部の取得:Mid関数を使用して文字列の一部を取得できます。

    Sub MidString()
        Dim myString As String
        Dim substring As String
        myString = "Hello, World!"
        substring = Mid(myString, 8, 5)
        MsgBox substring
    End Sub

    この例では、”Hello, World!”という文字列から8番目の文字から5文字分の部分文字列を取得し、”World”という結果が表示されます。

    これらは、VBAにおけるString型の基本的な使い方の一部です。String型は、テキストデータの格納、操作、および表示に非常に便利です。VBAを使用して文字列データを効果的に処理するために、これらの機能を理解して活用してください。

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

    【ChatGPT解説】VBAの固定長文字列

    生徒:こんにちは、講師さん。VBAの固定長文字列って何ですか?普通の文字列とはどう違うんですか?
     
    講師:こんにちは!固定長文字列は、VBAで使用される一種の文字列データ型です。通常の文字列(可変長文字列)とは異なり、固定された長さを持つという特徴があります。
     
    生徒:なるほど、固定長という言葉からも長さが変わらないってことですね。どのように使われるのですか?
     
    講師:固定長文字列は、主にファイルの形式や他のシステムとのデータのやり取りなど、特定の形式が必要な場合に使用されます。固定長文字列を使用することで、データの位置が一定になり、データの読み書きが簡単になります。
     
    生徒:例を教えていただけますか?
     
    講師:もちろんです。例えば、社員データを管理するプログラムを作る場合を考えてみましょう。社員の名前、年齢、部署などを格納するデータ構造が必要ですが、各データの長さが固定されていると便利です。
     
    生徒:なるほど、固定長でデータを管理すると、例えば名前の長さが変わっても他のデータに影響を与えずに扱えるんですね。
     
    講師:その通りです。固定長文字列を使用することで、データの位置やサイズが一定になり、データの操作が簡単になります。また、他のシステムとのデータのやり取りでも、固定長文字列は一般的に使用されます。
     
    生徒:固定長文字列を宣言するにはどうすればいいですか?
     
    講師:固定長文字列を宣言するには、String型の後に長さを指定します。たとえば、10文字の固定長文字列を宣言する場合は、次のように書きます:

    Dim myString As String * 10

    このようにすると、変数myStringは10文字の固定長文字列として宣言されます。
     
    生徒:なるほど、* 10というのが長さを指定する方法ですね。理解しました!
     
    講師:素晴らしいです!固定長文字列は特定のシナリオで便利なデータ型です。データの長さが変わらないことを前提とする場合に活用してみてください。他のデータ型との比較や実際のプログラムでの利用を通じて、さらに深く理解を深めることができますよ。