大体でIT

-ちょっと使えるネタを紹介-

大体でIT

Excel VBAで、大文字や小文字の変換は「StrConv」を使うとできます。大文字や小文字に変換できれば、大文字や小文字を区別しないで比較や検索したり、大文字や小文字の判定ができます。大文字や小文字の操作についてマスターしていきましょう。

はじめに

この記事では、大文字と小文字の変換や比較、検索、判定する方法について、ご紹介します。

大文字と小文字の変換は、「StrConv」を使うとできます。

全角や半角を指定して、大文字や小文字に変換したい場合は、「Like」を使って文字列を判定して、変換します。

大文字や小文字を区別しないで、比較や検索をしたい場合は、大文字もしくは小文字に統一してから比較や検索をするとできます。

大文字や小文字の操作について、マスターしていきましょう。

では、大文字や小文字の変換や比較、検索、判定する方法について、解説していきます。

この記事で紹介すること

  • 大文字と小文字を操作する方法わかります。

目次

ポイントとなるVBAコード

ポイントとなるVBAコードについてまとめています。

VBAコードのみ確認したい場合に、ご活用ください。

'大文字や小文字への変換
Debug.Print StrConv("a", vbUpperCase) '大文字へ変換
Debug.Print StrConv("A", vbLowerCase) '小文字へ変換

Dim A
A = "abc-def" '全角と半角の小文字
'全角の小文字のみを大文字に変換
For i = 1 To Len(A)
  If Mid(A, i, 1) Like "[a-z]" Then
    Mid(A, i, 1) = StrConv(Mid(A, i, 1), vbUpperCase)
  End If
Next
Debug.Print A

'半角の小文字のみを大文字に変換
For i = 1 To Len(A)
  If Mid(A, i, 1) Like "[a-z]" Then
    Mid(A, i, 1) = StrConv(Mid(A, i, 1), vbUpperCase)
  End If
Next
Debug.Print A

Dim A
A = "ABC-DEF" '全角と半角の大文字
'全角の大文字のみを小文字に変換
For i = 1 To Len(A)
  If Mid(A, i, 1) Like "[A-Z]" Then
    Mid(A, i, 1) = StrConv(Mid(A, i, 1), vbLowerCase)
  End If
Next
Debug.Print A

'半角の大文字のみを小文字に変換
For i = 1 To Len(A)
  If Mid(A, i, 1) Like "[A-Z]" Then
    Mid(A, i, 1) = StrConv(Mid(A, i, 1), vbLowerCase)
  End If
Next
Debug.Print A

'大文字と小文字を区別しないで比較
A = StrConv("ABC", vbUpperCase)
B = StrConv("abc", vbUpperCase)
Debug.Print A = B

'全角と半角、大文字と小文字を区別しないで比較
A = StrConv(StrConv("ABC", vbWide), vbUpperCase)
B = StrConv(StrConv("abc", vbWide), vbUpperCase)
Debug.Print A = B

'全角と半角、大文字と小文字を区別しないで比較
Debug.Print StrComp("ABC", "abc", vbTextCompare) = 0

'大文字と小文字を区別しないで検索
A = StrConv("ABC", vbUpperCase)
B = StrConv("a", vbUpperCase)
Debug.Print InStr(A, B) > 0

'全角と半角、大文字と小文字を区別しないで検索
A = StrConv(StrConv("ABC", vbWide), vbUpperCase)
B = StrConv(StrConv("a", vbWide), vbUpperCase)
Debug.Print InStr(A, B) > 0

'全角と半角、大文字と小文字を区別しないで検索
Debug.Print InStr(1, "ABC", "a", vbTextCompare) > 0

'大文字の判定
A = "A" '大文字
Debug.Print A <> StrConv(A, vbLowerCase)
  
'小文字の判定
A = "a" '小文字
Debug.Print A <> StrConv(A, vbUpperCase)

では、解説していきます。

大文字と小文字の変換

大文字と小文字の変換をしてみます。

「StrConv」を使います。

大文字に変換

「StrConv」を使って、大文字に変換してみます。

引数に「vbUpperCase」を入力します。

Sub TEST1()
  
  '大文字へ変換
  Debug.Print StrConv("a", vbUpperCase)
  
End Sub

実行してみます。

大文字に変換できた

大文字に変換できました

大文字に変換できました。

小文字に変換

小文字に変換してみます。

「StrConv」の引数に「vbLowerCase」を入力します。

Sub TEST2()
  
  '小文字へ変換
  Debug.Print StrConv("A", vbLowerCase)
  
End Sub

実行してみます。

小文字に変換できた

小文字に変換できました

小文字に変換できました。

全角もしくは半角のアルファベットを変換

全角もしくは半角のアルファベットを、大文字や小文字に変換してみます。

全角もしくは半角を指定して大文字に変換

全角もしくは半角を指定して、「大文字」に変換してみます。

全角小文字のみを大文字に変換

全角小文字のみを、大文字に変換する場合です。

Sub TEST3()
  
  Dim A
  A = "abc-def" '全角と半角の小文字
  
  '全角の小文字のみを大文字に変換
  For i = 1 To Len(A)
    If Mid(A, i, 1) Like "[a-z]" Then
      Mid(A, i, 1) = StrConv(Mid(A, i, 1), vbUpperCase)
    End If
  Next
  
  Debug.Print A
  
End Sub

実行してみます。

全角小文字のみを大文字に変換できました

全角小文字のみを、大文字に変換できました。

半角小文字のみを大文字に変換

半角小文字のみを、大文字に変換するVBAコードです。

Sub TEST4()
  
  Dim A
  A = "abc-def" '全角と半角の小文字
  
  '半角の小文字のみを大文字に変換
  For i = 1 To Len(A)
    If Mid(A, i, 1) Like "[a-z]" Then
      Mid(A, i, 1) = StrConv(Mid(A, i, 1), vbUpperCase)
    End If
  Next
  
  Debug.Print A
  
End Sub

実行してみます。

半角小文字のみを大文字に変換できました

半角小文字のみを、大文字に変換できました。

全角もしくは半角を指定して小文字に変換

全角もしくは半角を指定して、「小文字」に変換してみます。

全角大文字のみを小文字に変換

全角大文字のみを、小文字に変換するVBAコードです。

Sub TEST5()
  
  Dim A
  A = "ABC-DEF" '全角と半角の大文字
  
  '全角の大文字のみを小文字に変換
  For i = 1 To Len(A)
    If Mid(A, i, 1) Like "[A-Z]" Then
      Mid(A, i, 1) = StrConv(Mid(A, i, 1), vbLowerCase)
    End If
  Next
  
  Debug.Print A
  
End Sub

実行してみます。

全角大文字のみを小文字に変換できました

全角大文字のみを、小文字に変換できました。

半角大文字のみを小文字に変換

半角大文字のみを、小文字に変換するVBAコードです。

Sub TEST6()
  
  Dim A
  A = "ABC-DEF" '全角と半角の大文字
  
  '半角の大文字のみを小文字に変換
  For i = 1 To Len(A)
    If Mid(A, i, 1) Like "[A-Z]" Then
      Mid(A, i, 1) = StrConv(Mid(A, i, 1), vbLowerCase)
    End If
  Next
  
  Debug.Print A
  
End Sub

実行してみます。

半角大文字のみを小文字に変換できました

半角大文字のみを、小文字に変換できました。

大文字と小文字を区別しないで比較

大文字と小文字を区別しないで、比較してみます。

大文字に統一して比較

やり方としては、大文字に統一してから、比較するという感じです。

Sub TEST7()
  
  Dim A, B
  '大文字に統一する
  A = StrConv("ABC", vbUpperCase)
  B = StrConv("abc", vbUpperCase)
  
  '比較する
  Debug.Print A = B
  
End Sub

実行してみます。

大文字と小文字を区別しないで比較

大文字と小文字を区別しないで比較できました

大文字と小文字を区別しないで、比較できました。

全角と半角も区別しないで比較

全角と半角も区別しないで、比較してみます。

全角と半角、大文字と小文字を区別しないで比較

文字列を全角に変換してから、大文字に変換して、比較をします。

Sub TEST8()
  
  Dim A, B
  '全角かつ大文字に統一する
  A = StrConv(StrConv("ABC", vbWide), vbUpperCase)
  B = StrConv(StrConv("abc", vbWide), vbUpperCase)
  
  '比較する
  Debug.Print A = B
  
End Sub

実行してみます。

全角と半角、大文字と小文字を区別しないで比較できました

全角と半角、大文字と小文字を区別しないで比較できました。

StrCompを使う

全角と半角、大文字と小文字を区別しないで、比較をしたい場合は「StrComp」を使う方法もあります。

Sub TEST9()
  
  Dim A, B
  A = "ABC" '全角の大文字
  B = "abc" '半角の小文字
  
  '全角と半角、大文字と小文字を区別しないで比較
  Debug.Print StrComp(A, B, vbTextCompare) = 0
  
End Sub

実行してみます。

StrCompを使って、全角と半角、大文字と小文字を区別しないで比較できました

StrCompを使って、全角と半角、大文字と小文字を区別しないで比較できました。

大文字と小文字を区別しないで検索

次は、大文字と小文字を区別しないで、検索してみます。

大文字に統一して検索

やり方は先ほどと同じで、大文字に統一してから検索するという感じです。

Sub TEST10()
  
  Dim A, B
  '大文字に統一する
  A = StrConv("ABC", vbUpperCase)
  B = StrConv("a", vbUpperCase)
  
  '検索する
  Debug.Print InStr(A, B) > 0
  
End Sub

実行してみます。

大文字と小文字を区別しないで検索できた

大文字と小文字を区別しないで検索できました

大文字と小文字を区別しないで、検索できました。

全角と半角も区別しないで検索

全角と半角も区別しないで検索してみます。

全角と半角、大文字と小文字を区別しないで検索

全角に変換してから、大文字に変換して、検索するという感じです。

Sub TEST11()
  
  Dim A, B
  '全角かつ大文字に統一する
  A = StrConv(StrConv("ABC", vbWide), vbUpperCase)
  B = StrConv(StrConv("a", vbWide), vbUpperCase)
  
  '検索する
  Debug.Print InStr(A, B) > 0
  
End Sub

実行してみます。

全角と半角、大文字と小文字を区別しないで検索できました

全角と半角、大文字と小文字を区別しないで検索できました。

InStrに引数を入力する方法

全角と半角、大文字と小文字を区別しないで、検索したいという場合は、「InStr」に引数を入力して、検索する方法もあります。

Sub TEST12()
  
  Dim A, B
  A = "ABC" '全角の大文字
  B = "a" '半角の小文字
  
  '全角と半角、大文字と小文字を区別しないで検索
  Debug.Print InStr(1, A, B, vbTextCompare) > 0
  
End Sub

実行してみます。

InStrに引数を入力して、全角と半角、大文字と小文字を区別しにないで検索できました

InStrに引数を入力して、全角と半角、大文字と小文字を区別しにないで検索できました。

大文字と小文字の判定

大文字と小文字の判定をしてみます。

大文字の判定

大文字かの判定は、「小文字に変換できたら大文字である」というように、判定をします。

大文字の判定

文字列を大文字に変換して、元の文字列と違う場合は、大文字であると判定をします。

Sub TEST13()
  
  Dim A
  A = "A" '大文字
  
  '大文字の判定
  Debug.Print A <> StrConv(A, vbLowerCase)
  
End Sub

実行してみます。

大文字の判定ができました

大文字の判定ができました。

小文字の場合はFalse

もちろん、小文字で判定すると「False」となります。

Sub TEST14()
  
  Dim A
  A = "a" '小文字
  
  '大文字の判定
  Debug.Print A <> StrConv(A, vbLowerCase)
  
End Sub

実行してみます。

小文字の場合は、Falseになります

小文字の場合は、Falseになりました。

小文字の判定

小文字の判定をしてみます。

小文字の判定は、「大文字に変換できたら小文字である」というように、判定をします。

小文字の判定

文字列を大文字に変換して、元の文字列と違う場合は小文字である、と判定をします。

Sub TEST15()
  
  Dim A
  A = "a" '小文字
  
  '小文字の判定
  Debug.Print A <> StrConv(A, vbUpperCase)
  
End Sub

実行してみます。

小文字の判定ができました

小文字の判定ができました。

大文字の場合はFalse

もちろん、大文字で判定すると、Falseとなります。

Sub TEST16()
  
  Dim A
  A = "A" '大文字
  
  '小文字の判定
  Debug.Print A <> StrConv(A, vbUpperCase)
  
End Sub

実行してみます。

大文字の場合は、Falseになります

大文字の場合は、Falseになりました。

おわりに

この記事では、大文字と小文字の変換や比較、検索、判定する方法について、ご紹介しました。

大文字と小文字の変換は、「StrConv」を使うとできます。

全角や半角を指定して、大文字や小文字に変換したい場合は、「Like」を使って文字列を判定して、変換します。

大文字や小文字を区別しないで、比較や検索をしたい場合は、大文字もしくは小文字に統一してから比較や検索をするとできます。

大文字や小文字の操作について、マスターしていきましょう。

参考になればと思います。最後までご覧くださいまして、ありがとうございました。

関連する記事から探す

カテゴリから探す

カテゴリから見たい項目を探すと便利ですよ。

サイト内を検索する

↓キーワードを入力する

アーカイブから探す