Stringの概要
文字列を格納・操作するデータ型 VBAの予約語 | ||
String 概要 String は、VBA で文字列を扱うためのデータ型です。可変長文字列と固定長文字列の2種類があり、主にテキストデータの保存や処理に使用されます。 わかりやすく説明 String は、「文字をたくさん入れられる箱」のようなデータ型です。たとえば、名前やメッセージなどのテキスト情報を保存できます。 |
||
|
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 のセルデータの取得や文字列の結合に広く活用される。