【Excel VBA】If Elseとは違う条件式(Select Case)について
エンジニアのIMMRです。Excel VBAの条件式には、以前に説明したExcel VBA 条件式(If Else)とこれから説明するSelect Caseの二つあります。1.従来のIf Else条件式If Elseは条件に合った時は処理Aを、条件に合わなかったら処理Bを実行します。では、下記のようなデータがあり、複数の条件があるとします。If Elseを使用して作成すると2種類の方法が浮かぶと思
エンジニアのIMMRです。
セルに入力された文字で注目してほしい箇所があった場合、
色を付けると思います。
例えば、下記のようにセルに入力された文字の中でVBAだけを赤くしたいとします。
図1 ブック(セルB2に文字が入力されている)
文字を赤くするには、下記のように記述します。
Range("B2").Font.Color = RGB(255, 0, 0)
お気づきだと思いますがこれだと全ての文字が赤くなります。
図2 ブック(上記、プログラムの実行結果)
ではどのようにして行うかを説明します。
記述方法は、
Range("").Characters(Start:=X, Length:=X).Font.Color = RGB(
@, @, @)
・Range("")には変更したい文字が入力されているセルの場所を記載します。
・Charactersでセル内の変更したい文字の場所をしていします。( Startでスタートの位置、Lengthで文字数)
・Font.Color = RGB(@,@,@)で変更したいフォントの色をしていします。(ここではRGB方式で行っています。)
実際に行っていきます。
図3 ブック(セルB2に文字が入力されている)
上記ブック内に記載されている文字でVBAだけを赤くします。
・文字が記載されている場所はB2
・VBAと記載されている箇所は5文字目から始まり、3文字(Start 5 Length 3)
・赤文字にしたいので、RGB(255, 0, 0)
になります。
サンプルコード
Sub test15()
Range("B2").Characters(Start:=5, Length:=3).Font.Color = RGB(255, 0, 0)
End Sub
図4 ブック(上記、コード実行後)
文字列でVBAの箇所のみを赤色にすることが出来ました。
【著者】
今まではExcel VBAの開発をしてきました。
開発を主にしたものや他の業務の効率化を目指して行ったものさまざまです。
現在は、他のプログラミング言語に挑戦して、スキルアップを目指しています。