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"