【ExcelVBA・マクロ】UCase関数の使い方|文字列を大文字へ変換する方法【コピペOK】

UCase関数の使い方 ExcelVBA

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関数を使いこなせるようになると、データの統一や比較処理が簡単になります。
実務でも頻繁に利用されるため、ぜひマスターしておきましょう。

スポンサーリンク
スポンサーリンク
ExcelVBA
いがぴをフォローする

コメント

タイトルとURLをコピーしました