VBAで文字列を扱っていると、次のようなことはありませんか?
- 英字をすべて大文字にしたい
- 入力データを統一したい
- 大文字・小文字を区別しない比較をしたい
このような場合は、UCase関数を使うことで解決できます。
文字列内の英字をすべて大文字へ変換できる便利な関数です。
この記事では、UCase関数の基本から実務での活用方法まで分かりやすく解説します。
この記事でできること
- 英字を大文字へ変換できる
- 文字列の表記を統一できる
- 実務で使える文字列処理が分かる
UCase関数とは?
UCase関数は、文字列内の英字をすべて大文字へ変換する関数です。
例えば次の文字列がある場合、
excel vba
UCase関数を使用すると、
EXCEL VBA
へ変換できます。
基本:UCase関数の使い方
基本構文はこちらです。
UCase(文字列)
基本例
MsgBox UCase("excel vba")
→ EXCEL VBA
変数を使った例
Dim str As String
str = "hello world"
MsgBox UCase(str)
→ HELLO WORLD
セルの値を大文字へ変換する
Range("A1").Value = UCase(Range("A1").Value)
A1セルの英字を大文字へ変換できます。
比較処理で使う
大文字・小文字を統一して比較できます。
If UCase(Range("A1").Value) = "ADMIN" Then
MsgBox "管理者です"
End If
入力値の統一に使う
Dim userID As String
userID = UCase(InputBox("ユーザーIDを入力してください"))
MsgBox userID
入力された値を大文字で統一できます。
複数セルを一括変換する
Dim c As Range
For Each c In Range("A1:A10")
c.Value = UCase(c.Value)
Next c
UCaseとLCaseの違い
| 関数 | 内容 |
|---|---|
| UCase | 大文字へ変換 |
| LCase | 小文字へ変換 |
UCase
UCase("Excel")
→ EXCEL
LCase
LCase("Excel")
→ excel
StrConvとの違い
同じ大文字変換でもStrConvでも実現できます。
StrConv("excel", vbUpperCase)
ただし、大文字変換だけならUCaseの方がシンプルです。
実務での活用例
- ユーザーID統一
- コード管理
- 検索処理
- データクレンジング
データ整形では非常によく使われます。
注意点
① 日本語には影響しない
MsgBox UCase("あいうえお")
→ あいうえお
日本語は変換されません。
② 数字は変化しない
MsgBox UCase("abc123")
→ ABC123
③ Nullに注意
Null値はエラーになる場合があります。
安全な書き方(おすすめ)
Dim val As Variant
val = Range("A1").Value
If Not IsNull(val) Then
MsgBox UCase(val)
End If
よくあるエラーと対処法
① 日本語が変換されない
UCaseは英字のみ対象です。
② 型が一致しません
Nullやエラー値の可能性があります。
③ 比較処理がうまくいかない
比較する両方の値をUCaseで統一してください。
④ コードは正しいのにエラーになる
コピー時に全角文字や特殊文字が混ざることがあります。
その場合は該当行を手入力し直すと解決することがあります。
まとめ
- UCaseは文字列を大文字へ変換する関数
- 英字のみ変換される
- 入力値の統一や比較処理で活躍
- LCaseとセットで覚えると便利
UCase関数を使いこなせるようになると、データの統一や比較処理が簡単になります。
実務でも頻繁に利用されるため、ぜひマスターしておきましょう。

コメント