A子さん「”Apple”と”apple”って、VBAだと違う文字列って扱われちゃうんだよね…。
比較のたびにエラーになるの、地味にツライ…」



そんな悩みを抱えるあなたにこそ知ってほしいのが、UCase / LCaseという文字列変換関数です。
大文字・小文字の違いによるバグを防ぐための基本テクニックをご紹介します。
結論:文字列比較は「大文字か小文字に統一して」から比較しよう!
目次
UCaseとLCaseとは?
| 関数 | 説明 | 例 |
|---|---|---|
UCase | 指定した文字列をすべて大文字に変換 | UCase("apple") → "APPLE" |
LCase | 指定した文字列をすべて小文字に変換 | LCase("APPLE") → "apple" |
実際の使用例
ユーザー入力と値を比較したいとき
If LCase(Cells(i, 1).Value) = "apple" Then
MsgBox "りんご発見!"
End If
→ 入力が「Apple」「APPLE」「apple」など、
どの表記でも同じと判定できるようになります。
配列内の検索でミスを減らしたいとき
Dim fruit As String
fruit = "APPLE"
If LCase(fruit) = "apple" Then
MsgBox "一致しました"
End If
→ 大文字小文字を気にせずに判定が可能に!
UCase / LCaseが必要な理由
ユーザーは入力時に大文字小文字を意識しない
VBAでは "Apple" ≠ "apple" → 予期せぬ不一致
条件分岐や検索で正確な一致判定をするための必須テクニック
注意点とよくある失敗
| 失敗例 | 内容 |
|---|---|
| 変換し忘れ | 比較元だけLCase、比較先はそのまま…でFalse判定に |
| 部分一致やLike演算子と併用時 | Like "*apple*" などでは、ケースを揃えてから使うべし |
| 日本語は変換されない | LCase(“あいうえお”) → そのまま変化なし |
まとめ
UCase → 大文字、LCase → 小文字に変換する関数
文字列の比較・検索時は必ずどちらかで統一
ユーザー入力やデータの揺れを吸収して安定した処理に!

コメント