当サイトではアフィリエイトプログラムを利用して商品を紹介しています。

【VBA】LCase・UCase(大文字と小文字の相互変換)

この記事では、VBA の LCase と UCase で、アルファベットの大文字・小文字の相互変換をする方法について解説します。Excel のワークシート関数には、ほぼ同等の機能をもつ LOWER 関数と UPPER 関数があります。LOWER 関数と UPPER 関数については、こちらをご覧ください

LCase・UCase

VBALCase はアルファベットの大文字を小文字に変換し、UCase はアルファベットの小文字を大文字に変換する関数です。簡単なマクロで確認してみましょう。

'[VBA] 大文字から小文字に変換するプロシージャ

Sub Upper_To_Lower()

  Dim myword1 As String
  Dim myword2 As String

  myword1 = "KOBATO"
  myword2 = LCase(myword1)

  Debug.Print myword2

End Sub

'[VBA] 小文字から大文字に変換するプロシージャ

Sub Lower_To_Upper()

  Dim myword1 As String
  Dim myword2 As String

  myword1 = "kobato"
  myword2 = UCase(myword1)

  Debug.Print myword2

End Sub

Upper_To_Lower を実行すると、myword1 という変数に入っている KOBATO という大文字を小文字に変えて kobato と表示されます。Lower_To_Upper() はその逆に、myword1 という変数に入っている kobato という小文字を大文字に変換して KOBATO と表示されます。
 
LCase 関数と UCase 関数は、それぞれ引数にセルを指定することもできますが、指定できるのはひとつのセルだけです。セル範囲を指定することはできません。そこで、選択したセルに入力されているアルファベットを全て大文字に変えるには、次のようなマクロを書きます。

'[VBA] 選択範囲のアルファベットを大文字に変換するプロシージャ

Sub Uppercase()

  Dim myrange As Range

  For Each myrange In Selection
     myrange.Value = UCase(myrange)
  Next

End Sub

オブジェクト型変数を使っているところがポイントです。
変数 myrange にはセルがそのまま入ります。

For Each myrange In Selection
  myrange.Value = UCase(myrange)
Next

という記述は、選択した範囲内の1つ1つのセルを順に変数 myrange に入れて大文字に変えるという処理をさせます。VBA の For…Each は本当に便利ですね。まあとにかく、下の図のように大文字と小文字の入り混じったデータをまとめて選択してマクロを実行してみてください。
 
VBAのLCase関数とUCase関数(大文字と小文字)
 
こんなふうに全部大文字に変わります。

コメント

  1. あとりえこばと より:

    【AI要点解説】VBAのLCase

    [ChatGPT] VBA(Visual Basic for Applications)のLCase関数は、指定した文字列のすべての英字を小文字に変換するために使用されます。以下にLCase関数の要点をまとめました。

    1.LCase関数の構文:
    LCase(文字列)
     
    2.引数:
    ・文字列:変換したい文字列を指定します。
     
    3.戻り値:
    ・変換後の文字列を返します。
     
    4.特徴:
    ・英字以外の文字は変換されずにそのまま保持されます。
    ・大文字と小文字の区別がなくなります。
     
    5.使用例:

    Sub LCaseSample()
        Dim str As String
        str = "Hello World"
        MsgBox LCase(str) ' 出力: "hello world"
    End Sub

    6.注意事項:
    ・LCase関数は元の文字列を変更しません。変換後の文字列を使用する場合は、変数に代入する必要があります。
    ・LCase関数は英字のみを変換するため、非英字の文字が含まれている場合は無視されます。
     
    以上がVBAのLCase関数に関する要点です。この関数を使うことで、文字列の英字を小文字に統一することができます。

    【AI要点解説】VBAのUCase

    [ChatGPT] VBA(Visual Basic for Applications)のUCase関数は、指定した文字列のすべての英字を大文字に変換するために使用されます。以下にUCase関数の要点をまとめました。

    1.UCase関数の構文:
     UCase(文字列)
     
    2.引数:
    ・文字列:変換したい文字列を指定します。
     
    3.戻り値:
    ・変換後の文字列を返します。
     
    4.特徴:
    ・英字以外の文字は変換されずにそのまま保持されます。
    ・大文字と小文字の区別がなくなります。
     
    5.使用例:

    Sub UCaseSample()
        Dim str As String
        str = "Hello World"
        MsgBox UCase(str) ' 出力: "HELLO WORLD"
    End Sub

    6.注意事項:
    ・UCase関数は元の文字列を変更しません。変換後の文字列を使用する場合は、変数に代入する必要があります。
    ・UCase関数は英字のみを変換するため、非英字の文字が含まれている場合は無視されます。
    以上がVBAのUCase関数に関する要点です。この関数を使うことで、文字列の英字を大文字に統一することができます。