和風スパゲティのレシピ

日本語でコーディングするExcelVBA

アルファベットを大文字/小文字に変換する - UCase/LCase関数

文字列中のアルファベットを大文字または小文字に変換する、
UCase/LCase関数の使い方を解説します。

基本形

アルファベットを大文字にした文字列 = UCase(文字列)
アルファベットを小文字にした文字列 = LCase(文字列)

実行例

' 基本動作
Msgbox  UCase("abc") ' → ABC
Msgbox  LCase("ABC") ' → abc

' 全角のアルファベットにも対応(出力も全角)
Msgbox  UCase("abc") ' → ABC
Msgbox  LCase("ABC") ' → abc

' 数字や日本語には無反応
MsgBox LCase("あいう123ABC") ' → あいう123abc
' 文字列の変数内を大文字アルファベットに統一
文字列変数 = UCase(文字列変数)

' セルの値を大文字アルファベットに統一
Range("A1").Value = UCase(Range("A1").Value)

解説

UCase関数は渡した文字列内の小文字アルファベットをすべて大文字に変換します。
逆にLCase関数は大文字アルファベットを小文字に変換して返します。

サンプルの通りこの関数は全角アルファベットにも対応しており、
全角を渡した場合は返り値も全角になります。


両関数とも、英字以外の文字(数字や記号、日本語など)には影響を与えません。

また、UCase関数は大文字アルファベットに影響は与えず、
LCase関数は小文字アルファベットには影響を与えません。

StrConv関数で代用する

文字列を変換/整形する代表的な関数には、他に万能型のStrConv関数があります。

このStrConv関数に渡せる設定値には「vbUpperCase/vbLowerCase」があり、
こちらを使って全く同じ処理をすることも可能です。

アルファベットを大文字にした文字列 = StrConv(文字列, vbUpperCase)
アルファベットを小文字にした文字列 = StrConv(文字列, vbLowerCase)

 
またStrConv関数は「第2引数を足し算することで複数の変換を同時にできる」ため、
先ほどの「全角/半角」の統一も同時に行うことができます。

アルファベットを半角大文字にした文字列 = StrConv(文字列, vbUpperCase + vbNarrow)

 
アルファベットの変換以外にも同時に行う文字列処理がある場合は、
StrConvで一気にやってしまった方が楽な場合も多いと思います。

状況に応じて使い分けてみてください。