【ExcelVBA】大文字・小文字を変換する方法とは?判定に使う方法も解説!!

皆さんは、VBAで大文字と小文字を意識して処理を組んだことがありますか?

IF文などの条件式で「A = a」のようにしてしまった場合、結果がTrueにならず、意図した結果にならないケースがよくあります。

そこで今回は、

・VBAで大文字⇔小文字変換する方法

・大文字・小文字を指定して文字判定する方法

といった基礎的なことから、

・大文字・小文字を区別せず文字判定する方法

・【補足】合わせて覚えると便利な文字を判定する方法

といった応用的な方法まで、徹底的に解説します!

VBAで大文字⇔小文字変換する方法

はじめに、大文字⇔小文字変換方法について解説します。

変換方法が2つあるので、それぞれ解説しますね。

UCase関数・LCase関数を使う

まず、UCase関数・LCase関数を使う方法についてです。

それぞれ以下のように変換できる関数です。


・UCase関数:小文字から大文字に変換
・LCase関数:大文字から小文字に変換

使い方も簡単で、「関数名(文字列)」のように書くことで、上記のように大文字⇔小文字を変換することができます。

UCase関数・LCase関数を使ったサンプルコードを用意しました。

サンプルコード:

実行結果:

このように、簡単に大文字⇔小文字を変換することができます。

StrConv関数を使う

次に、StrConv関数を使う方法について解説します。

StrConv関数は、大文字小文字以外にも様々な文字を変換することができる、便利な関数です。

たとえば、以下のように様々な変換ができます。

使い方:

変換方法一覧:

No意味
 1 vbUpperCase大文字に変換
 2 vbLowerCase小文字に変換
 3 vbProperCase各単語の先頭の文字を大文字に変換
 4 vbWide半角文字を全角文字に変換
 5 vbNarrow全角文字を半角文字に変換
 6 vbKatakanaひらがなをカタカナに変換
 7 vbHiraganaカタカナをひらがなに変換
 8 vbUnicode文字列をUnicodeに変換

大文字に変換する場合は「vbUpperCase」を変換方法に指定し、小文字に変換する場合は「vbLowerCase」を変換方法に指定することで、大文字・小文字にそれぞれ変換できます。

先ほどのコードを、StrConv関数に書き換えたサンプルを用意しました。

サンプルコード:

実行結果:

結果はさきほどとおなじですが、StrConv関数で大文字・小文字を変換することができましたね。

このように、簡単に変換することができます。

UCase関数・LCase関数とStrConv関数どちらを使えばいいの?

素朴な疑問として、「じゃあ、どちらを使えばいいの?」と思った方もいるのではないでしょうか。

結論から言うと、どちらを使ってもOKです。

ただし、UCase関数・LCase関数はそれぞれ小文字→大文字、大文字→小文字の機能しか持っていないため、誤った変換をする心配がありません。

その点StrConv関数は変換方法を間違えると意図した結果にならないので、UCase関数・LCase関数の方がミスは減るかもしれませんね。

ミスをするリスクを減らして機能を絞るか、機能の豊富さ(他の変換もできる)を重視するかの違いだけなので、覚えやすい方を使うのがおすすめです!

条件式で大文字・小文字の判定を使う方法

次に、条件式で大文字・小文字判定をする方法について解説します。

大文字・小文字を指定して文字判定するケース

まずは、大文字・小文字を指定して文字判定するケースについてです。

対象の文字列が小文字のときに、〇〇の処理をする」というような条件を作りたいときに使います。

UCase関数・LCase関数を使って判定することができます。

先ほど詳しくは解説しませんでしたが、UCase関数(小文字→大文字変換)をする文字列があらかじめ大文字だった場合は、結果も大文字のままになるという特性を利用して、「対象の文字」と「対象の文字をUCase関数で変換した文字」を比較することで、文字列が大文字かどうか判定することができます。

対象文字が大文字になっているか確認するサンプルコードを用意しました。

サンプルコード:

実行結果:

If str1 = UCase(str1) Then」で大文字かどうか判定を行い、結果を出力するサンプルです。

str1 = “abc”」が元のデータのため、結果が「abcは大文字ではありません。」になっていますよね。

このように、大文字・小文字を指定して処理を作っていくことができます。

大文字・小文字を区別せず文字判定するケース

次に、大文字・小文字を区別せずに文字判定するケースについてです。

大文字・小文字関係なく文字が同じだったときに処理をしたい場合は、IF文条件に使う左・右のどちらの値にもUCase関数を使うことで、どちらも大文字に変換してから判定するのがおすすめです!

サンプルコードを用意しました。

サンプルコード:

実行結果:

先ほどの応用ですが、どちらも大文字にしてから判定しているため、同じ文字として認識できていますよね。

ちょっとした応用をするだけで、大文字・小文字の判定ができるので、それぞれ方法を覚えておくのがおすすめです!

【補足】合わせて覚えると便利な文字を判定する方法

ここまでは対象の値が文字であることを前提に処理を書いてきましたが・・・数値が入って来るケースもありますよね。

そのため、TypeName関数を使って、数値・文字列判定する方法を覚えておくのがおすすめです!

以下で詳しく解説しているので、気になる方はみてみてくださいね!

【ExcelVBA入門】文字列・数値を判定するためのTypeNameの使い方とは
更新日 : 2018年8月21日

まとめ

今回は、VBAで大文字・小文字を変換・判定する方法を解説しました。

大文字・小文字のちょっとしたミスでもバグにつながるので、覚えておくと便利です。

どれも使い方は簡単なので、ぜひ使ってみてくださいね!

Excel VBAを最短で習得したい方へ

元々ITリテラシーの高い方やプログラムの学び方がわかっている方であれば、この記事通りに進めていけば、Excel VBAを独学で習得することができるでしょう。

ただし、実際の学習期間中はつまづいている時間がほとんどです。

「なかなかやり遂げられ無い、挫折してしまった」
「時間が足りない」
「情報が少なくどう調べればいいかわからない」
「エラーを解決することができない」

このような悩みを抱えている方も少なく無いと思います。

  • もう挫折したくない
  • 本業と両立しながら、好きな時間で自分のペースで勉強を続けていきたい
  • 自分だけのカリキュラムで効率的に勉強したい
そんな方はお気軽に侍エンジニア塾までご相談ください。

お一人お一人に専属のインストラクターがつくので、より深くExcel VBAについて学習することできます。

まずは『無料体験レッスン』で、弊社のコンサルタントと一緒にあなた専用の学習方やカリキュラムを考えてみませんか?

Excel VBAならではの学習方法や、現役エンジニアから貴重なアドバイスを受けることができます。

詳しくは下の画像をクリックして弊社サービス内容をご確認ください。

cta2_vba2

LINEで送る
Pocket

書いた人

Sanshiro Wakizaka

Sanshiro Wakizaka

フリーランスエンジニア兼ライターのワキザカ サンシロウです。
ExcelVBAの自動化ツール開発、WEB開発をメインにエンジニア業務をこなしつつ、サムライエンジニアにてライター業務をしております。

プログラミングをこれからやってみたい方に向けて、ためになる記事を全力で書いていきますので宜しくお願い致します!

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説