【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種類の方法が浮かぶと思
Workteria(ワークテリア)では難易度の高いものから低いものまで、スキルや経験に合わせた案件を多数揃えています。会員登録は無料ですので、ぜひ会員登録してご希望の案件を探してみてください!
フリーランス/正社員のエンジニアとして活躍するには、ご自身のスキルや経験に合わせた仕事を選ぶことが大切です。ご希望の案件がみつからない場合はお気軽にお問い合わせください!ユーザ満足度の高いキャリアコンサルタントが在籍していますので、希望条件や悩み事などなんでもご相談ください。ご希望にピッタリの案件をご紹介させていただきます。
皆さんこんにちは、エンジニアのIMMRです。
エクセルを操作していくうえでは必要不可欠である罫線。
もちろんVBAでも操作できます。
一番シンプルな罫線は、囲んだセルの範囲を格子で囲んだものになりますが、
下記図のようにさまざまな種類もあり、いろいろと作成することができます。
図1 罫線のサンプル
このようにいろんな罫線を記載することができます。 ※もちろんこれ以外にもいろいろとあり、作成できますが・・・
罫線を追加するためには、下記の5点を設定することが出来ます。
下記図のようにどこに罫線を追加するのかを決める必要があります。
図2 設定1(範囲)
罫線では、「実践」「点線」「一点鎖線」「2本線」等、いろいろと種類があるのでそれを設定できます。
図3 設定2(スタイル)
決定した罫線(スタイル)の色を設定します。
図4 設定3(カラー)
範囲、スタイル、色と決定しました。あとは、範囲のどの場所かを設定します。
格子なのか、下,上罫線なのか、左,右なのか等
図5 設定4(箇所)
図3 設定2(スタイル)にもありますが
細線、普通線、太線、ごく細線があります。
以上を組み合わせて設定をしていきます。
範囲は、普通に
Range("セル箇所(開始):セル箇所(終了)")
といったかたちで記載します。
図2 設定1(範囲)でいったら、セル(B2)~セル(M12)になっているので
Range("B2:M12")
となります。
今後は、指定したセルの範囲の罫線を引く、指定したセルの範囲の罫線の色、指定したセルの範囲のスタイルを設定するなどと
指定したセルの範囲の・・・と同じことが重なってしまうので
以前にも説明したWith ステートメントを使用していきたいと思います。
【Excel VBA】同一のオブジェクトを省略して記載する方法
そのため、このような記載になります。
記載例
With Range("B2:M12")
.処理①
.処理②
End With
スタイルに関しては、下記のように記載します。
.Borders.LineStyle = ラインのスタイル
図6 罫線のスタイル一覧
線の色に関しては、下記のように記載します。
.Borders.Color = RGB(@@@, @@@, @@@)
※@@@は、色に合わせた数値を入力
これでいろいろとカラーを作成できます。
以下がサンプルです。もちろんこのほかの色も設定できます。
図7 カラーの一覧
範囲の箇所に関しては、下記のように記載します。
線のスタイルで.Borders.LineStyle・・・と宣言しましたが、
Bordersの後ろに()付きで記載します。
記載例
.Borders(範囲の箇所).LineStyle
図8 線の範囲の箇所一覧
線の太さに関しては、下記のように記載します。
.Borders.Weight = 線の太さ
図9 線の太さ一覧
以上より、罫線を追加しています。
では、上記で説明をしたことによって、下記のような
サンプル図を作成していきます。
図10 実行サンプル図
行うことは、
①セル(B2)~セル(H10)に罫線(破線)を追加する。線の色は赤にする。
②セル(B2)~セル(H2)に罫線(下側の線)を追加する。太文字で線の色を青にする。
③セル(B10)~セル(H10)に罫線(上側の線)を追加する。線の色を緑にする。
④セル(B2)に罫線(右下がりの斜線)を追加する。
といったことを行います。
では上記であげた罫線追加を行うサンプル図を見ていきます。
サンプルプログラム
Sub test1()
With Range("B2:H10")
.Borders.LineStyle = xlDash
.Borders.Color = RGB(255, 0, 0)
End With
With Range("B2:H2")
.Borders(xlEdgeBottom).Color = RGB(0, 0, 255)
.Borders(xlEdgeBottom).Weight = xlThick
End With
With Range("B10:H10")
.Borders(xlEdgeTop).LineStyle = xlDouble
.Borders(xlEdgeTop).Color = RGB(0, 255, 0)
End With
With Range("B2")
.Borders(xlDiagonalDown).LineStyle = xlContinuous
End With
End Sub
一つの範囲だけで出来ない場合は、
範囲ごとのブロックに分けて作成する必要だあります。
下記図が上記サンプルプログラムの実行結果です。
図11 サンプルプログラム実行結果
図10 実行サンプル図と同じ出力結果になりました。
これにより、さまざまな罫線を追加することができました。
そのような方はぜひ、Workteriaサイトをご利用ください!
定期的にご本人に合う高額案件を紹介
リモートワークなど自由な働き方ができる案件多数
専属エージェントが契約や請求をトータルサポート