【VBA】セルに網掛け(パターン)を設定する

こんにちは、Ryoです。
Excelは標準で多彩な網掛けパターンを持っていますので、用途に応じて使用する機会も多々あるかと思います。この網掛けはVBAでもPatternプロパティ、xlPatternクラス定数を使用することで設定できますので、今回はその内容について書いていきたいと思います。



1.Patternプロパティの構文

オブジェクト.Pattern = Expression

この構文でxlPatternクラスの定数を使用し、対象とするセルへ網掛け設定を使用とする場合は、セル背景や色などを管理するInteriorオブジェクトをあわせて使いますので、例えばセルA1にチェック網掛けを指定しようとする場合はこのようになります。

Sub Sample1()

  Cells(1, 1).Interior.Pattern = xlPatternChecker
  
End Sub

これを実行するとセルA1にチェックのパターンが設定されます。

またxlPatternクラスの定数としては以下の通りなので、用途に応じて選定しPatternプロパティに設定します。

定数 内容
xlPatternChecker 9 チェッカーボード
xlPatternCrissCross 16 十字線
xlPatternDown -4121 左上から右下への濃い対角線
xlPatternGray16 17 灰色16%
xlPatternGray25 -4124 灰色25%
xlPatternGray50 -4041 灰色50%
xlPatternGray75 -4042 灰色75%
xlPatternGray8 18 灰色8%
xlPatternGrid 15 グリッド
xlPatternHorizontal -4044 濃い横線
xlPatternLightDown 13 左上から右下への明るい対角線
xlPatternLightHorizontal 11 明るい横線
xlPatternLightUp 14 左下から右上への明るい対角線
xlPatternLightVertical 12 明るい縦線
xlPatternNone -4058 パターンなし
xlPatternSemiGray75 10 濃いモアレ縞75%
xlPatternSolid 1 純色
xlPatternUp -4162 左下から右上への濃い対角線
xlPatternVertical -4166 濃い縦線

表内には書いていませんが、「自動」設定とするxlPatternAutomatic(値:-4105)というものもありますのでご参考までに。

では、これらを使用したサンプルコードなどについて次以降に書いていきます。

2.サンプルコード

xlPatternクラス定数をそれぞれ使用した場合にどのような網掛けになるのか見比べる為に以下のような簡単な表を作成しています。

この表に対し、次のサンプルコードを実行します。繰り返し処理を行う都合上、配列変数Themeにクラス定数を格納し、For文内で指定しています。

Sub Sample2()

 Dim i As Integer
 Dim Theme(1 To 19) As String
     '配列にxlPatternクラス定数を格納
      Theme(1) = xlPatternChecker
      Theme(2) = xlPatternCrissCross
      Theme(3) = xlPatternDown
      Theme(4) = xlPatternGray16
      Theme(5) = xlPatternGray25
      Theme(6) = xlPatternGray50
      Theme(7) = xlPatternGray75
      Theme(8) = xlPatternGray8
      Theme(9) = xlPatternGrid
      Theme(10) = xlPatternHorizontal
      Theme(11) = xlPatternLightDown
      Theme(12) = xlPatternLightHorizontal
      Theme(13) = xlPatternLightUp
      Theme(14) = xlPatternLightVertical
      Theme(15) = xlPatternNone
      Theme(16) = xlPatternSemiGray75
      Theme(17) = xlPatternSolid
      Theme(18) = xlPatternUp
      Theme(19) = xlPatternVertical
  
   For i = 1 To 19
    'セルC4から下方向へ網掛けを実行する
     Cells(i + 3, 3).Interior.Pattern = Theme(i)
   Next i
 
   '配列データの解放
   Erase Theme
 
End Sub

実行結果としてはこの通りです。

ちなみに色を付けたい場合は次のようにInterior.ColorIndex指定を行えばOKです。

Sub Sample3()

 Dim i As Integer
 Dim Theme(1 To 19) As String
      '配列にxlPatternクラス定数を格納
      Theme(1) = xlPatternChecker
      Theme(2) = xlPatternCrissCross
      Theme(3) = xlPatternDown
      Theme(4) = xlPatternGray16
      Theme(5) = xlPatternGray25
      Theme(6) = xlPatternGray50
      Theme(7) = xlPatternGray75
      Theme(8) = xlPatternGray8
      Theme(9) = xlPatternGrid
      Theme(10) = xlPatternHorizontal
      Theme(11) = xlPatternLightDown
      Theme(12) = xlPatternLightHorizontal
      Theme(13) = xlPatternLightUp
      Theme(14) = xlPatternLightVertical
      Theme(15) = xlPatternNone
      Theme(16) = xlPatternSemiGray75
      Theme(17) = xlPatternSolid
      Theme(18) = xlPatternUp
      Theme(19) = xlPatternVertical
      
   For i = 1 To 19
     'セルC4から下方向へ網掛けを実行する
     'サンプルとして色はオレンジ色(ColorIndex=45)指定
     With Cells(i + 3, 3)
       .Interior.ColorIndex = 45
       .Interior.Pattern = Theme(i)
     End With
   Next i
 
   '配列データの解放
   Erase Theme
 
End Sub

ColorIndexについて詳細は触れませんが、使用頻度高そうな色のIndex値は黒:1、白:2、赤:3、緑:4、青:5、黄:6、紫:7、水色:8、茶色:9、ピンク:38です。

3.まとめ

セルへの配色や網掛け設定は、集計作業やデータ収集などを行った際に区分したい結果を強調表示できるので何かと有用な機能だと思います。



但し、このような網掛けを使いすぎると見る側が視覚的に慣れてしまって強調表示の効果が半減しますのでご利用は計画的に(笑)

以上、セルに網掛け(パターン)を設定する方法についてでした!今回の記事が何かの参考になれば幸いです。

Ryo

スポンサーリンク
スポンサーリンク

楽天トラベル

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク

楽天トラベル