VBA すべて小文字に変換(LCase)

LCase 関数は、VBA(Visual Basic for Applications)で文字列をすべて小文字に変換するための関数です。文字列の比較や検索処理を行う際に、大文字・小文字の違いを無視して処理を統一したいときによく使われます。


🔧 基本構文

LCase(string)
  • 引数 string:変換対象となる文字列(String型)
  • 戻り値:すべてが小文字になった文字列(String型)

✅ 使用例

Sub SampleLCase()
Dim original As String
Dim lower As String

original = "Excel VBA"
lower = LCase(original)

MsgBox lower ' 出力:excel vba
End Sub

🎯 使い方の例

1. 大文字小文字を区別しない比較

Dim inputValue As String
inputValue = InputBox("続けるには「YES」と入力してください")

If LCase(inputValue) = "yes" Then
MsgBox "処理を続行します。"
Else
MsgBox "処理を中断しました。"
End If

このように LCase を使えば、ユーザーが「YES」「Yes」「yes」などと入力しても、すべて小文字に変換されて "yes" と一致するかどうかで判断できます。


2. 条件分岐の正確な文字チェック

Select Case LCase(Range("A1").Value)
Case "ok"
MsgBox "OKです。"
Case "ng"
MsgBox "NGです。"
Case Else
MsgBox "その他の入力です。"
End Select

⚠️ 注意点

注意点内容
引数に Null を渡すとエラーLCase(Null) は「型が一致しません(Type mismatch)」エラー
引数に Empty を渡すと空文字が返るLCase(Empty)"" を返す
文字列以外の値を渡すと暗黙変換される数値などを渡すと文字列に変換されて処理されることがある
Debug.Print LCase(123)        ' → "123" (数値が文字列として扱われる)
Debug.Print LCase("") ' → ""(空文字)

🌐 Unicode文字への対応

  • 英字(A~Z)のみが変換対象です。
  • ひらがな・カタカナ・漢字・記号・数字などは変化しません。
Debug.Print LCase("ABCabc123あいう")  
' → abcabc123あいう

※ 半角英字(A~Z)は小文字になる。全角英字(A~Z)も小文字に変換されます。


🧩 LCase と UCase の違い

関数説明例(”AbC” の変換結果)
LCase小文字に変換"abc"
UCase大文字に変換"ABC"

📦 応用:辞書的な文字列比較関数

Function IsMatchCaseInsensitive(a As String, b As String) As Boolean
IsMatchCaseInsensitive = (LCase(a) = LCase(b))
End Function

Sub TestCompare()
If IsMatchCaseInsensitive("Hello", "HELLO") Then
MsgBox "一致!"
Else
MsgBox "不一致!"
End If
End Sub

📌 まとめ

項目内容
目的文字列を小文字に変換する
戻り値の型String(すべて小文字)
使用場面大文字小文字を無視した比較や入力判定など
関連関数UCase(大文字化)、StrConv(詳細な変換)

🧠 補足:StrConv との違い

StrConv は小文字化に加え、カタカナ/ひらがな変換、全角/半角変換などもできます。

StrConv("ABC", vbLowerCase) ' → "abc"
タイトルとURLをコピーしました