VBAのString型で文字列を扱う方法をわかりやすく解説

スポンサーリンク
スポンサーリンク

Stringの概要

文字列を格納・操作するデータ型 VBAの予約語

String

概要 String は、VBA で文字列を扱うためのデータ型です。可変長文字列と固定長文字列の2種類があり、主にテキストデータの保存や処理に使用されます。

わかりやすく説明 String は、「文字をたくさん入れられる箱」のようなデータ型です。たとえば、名前やメッセージなどのテキスト情報を保存できます。

  • 文字列を保存できるデータ型。
  • 可変長文字列(長さが変わる)と固定長文字列(決められた長さ)の2種類がある。
  • 文字列の結合や操作に便利な関数(LeftMidLen など)が利用可能。

String の基本的な使い方

String 型の変数を宣言し、文字列を代入する基本的な例です。

Sub ExampleString()
    Dim message As String ' 文字列変数を宣言
    
    message = "こんにちは、VBA!"
    MsgBox message, vbInformation, "String 型の例"
End Sub

解説:

  • Dim message As String で String 型の変数を宣言。
  • 変数に「こんにちは、VBA!」という文字列を代入し、MsgBox で表示。

固定長の String を使う

固定長の文字列を宣言し、文字列を格納する例です。

Sub ExampleFixedString()
    Dim fixedStr As String * 10 ' 10 文字の固定長文字列
    
    fixedStr = "VBA"
    MsgBox "[" & fixedStr & "]", vbInformation, "固定長 String"
End Sub

解説:

  • Dim fixedStr As String * 10 で 10 文字の固定長文字列を宣言。
  • 格納する文字列が短い場合、右側にスペースが自動的に追加される。

String を使った Excel のセル操作

Excel のセルから文字列を取得し、加工する例です。

Sub ExampleStringExcel()
    Dim name As String
    
    ' A1 の値を取得
    name = Range("A1").Value
    
    ' 文字列を加工して B1 に出力
    Range("B1").Value = "こんにちは、" & name & " さん!"
End Sub

解説:

  • A1 の値を String 型の変数に格納。
  • 取得した名前を使ってメッセージを作成し、B1 に出力。

エラーを回避する方法

String 型を使用する際、変数に数値や空白が入る可能性を考慮し、エラーを防ぐ方法を紹介します。

Sub SafeStringExample()
    Dim userInput As Variant
    Dim strValue As String
    
    ' セル A1 の値を取得
    userInput = Range("A1").Value
    
    ' 文字列に変換
    If IsEmpty(userInput) Or IsNull(userInput) Then
        strValue = "(データなし)"
    Else
        strValue = CStr(userInput)
    End If
    
    MsgBox "入力値: " & strValue, vbInformation, "文字列の安全な処理"
End Sub

解説:

  • セルの値が空白や Null である可能性を考慮し、適切に処理する。
  • CStr を使い、値を明示的に文字列に変換。

String の注意事項

  • 固定長 String は右側がスペースで埋められる: 余分なスペースを削除するには Trim 関数を使用する。
  • 数値を文字列として扱う場合は明示的に変換: CStr(123) のように変換しないと、型の不一致エラーが発生することがある。
  • 長い文字列を扱う場合はメモリ消費に注意: 大量の文字列を処理する場合、処理速度が低下する可能性がある。

よくある質問

Q: String に数値を代入するとどうなりますか?
A: 自動的に文字列に変換されますが、明示的に CStr を使うのが推奨されます。
Q: 固定長 String の長さを超えるデータを入れるとどうなりますか?
A: 長すぎるデータは切り捨てられます。
Q: 文字列の長さを取得するにはどうすればいいですか?
A: Len(変数名) を使うと、文字列の長さ(バイト数ではなく文字数)を取得できます。
Q: 文字列を大文字・小文字に変換する方法は?
A: UCase("abc") で大文字に、LCase("ABC") で小文字に変換できます。

まとめ

  • String は文字列を格納・操作するためのデータ型。
  • 可変長(通常の String)と固定長(String * 10 など)の2種類がある。
  • 数値を文字列として扱う場合は CStr を使うのが安全。
  • 固定長 String はスペースで埋められるため、Trim を使うとよい。
  • Excel のセルデータの取得や文字列の結合に広く活用される。