色の考え方
Excelを操作する上で「色」を使う場面としては、次のような場面です。
・文字の色
・セルの背景色
この2つについては、「ホーム」タブにボタンがあり、そのボタンを押すとパレットと呼ばれる、色の一覧が出てきます。
このパレットの中で自分が使いたい色をクリックすると「文字の色」や「セルの背景色」を変更することができます。
マクロの記録でのコード
例えば、「セルの背景色」をこの中から「赤」にすることを考えていきます。
「マクロの記録」という実際にExcelの動作を行うことでコード化してくれる機能を使って、上記の動作を行うと次のようなコードが出来ます。
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 255
.TintAndShade = 0
.PatternTintAndShade = 0
End With
ぱっと見、かなり難しく感じないでしょうか?
最初に見るコードとしては、コードが多すぎて、読み解くのが大変です。
シンプルな色の設定
実は色の設定はもっと簡単に設定をすることができます。
特に原色の「赤」ということであれば、ColorIndexプロパティを使用すれば、次のように記載すれば色をつけることができます。
Cells(1,1).Interior.ColorIndex = 3
ColorIndexは色には「カラーパレット」というものがあり、カラーパレットにはインデックス番号というものがあり、原色の赤だとインデックス番号が「3」のため、上記のようなコードになります。
先ほどのものと比べると1行で済んでいるため、非常にシンプルだと思いませんか?
これは色の設定方法の一つのColorIndexプロパティを使った方法で、色の設定は主に2つあります。
①ColorIndexプロパティ
②Colorプロパティ
ColorIndexプロパティ
ColorIndexプロパティを使用するには、「カラーコード」と呼ばれる「色に番号がついているコード番号」が必要です。
一例を挙げると次の5つがあります。
1.黒
2.白
3.赤
4.黄緑
5.青
ColorIndexで使用できるコードは全部で56色になっています。そのため、細かな色指定をするためには向いておらず、細かな色指定をしたい場合にはColorプロパティを使用します。
Colorプロパティ
Colorプロパティの設定については「RGB」もしくは「Hex」で指定します。
RGBやHexという単語自体はあまり聞きなれないかと思います。
また、さらにややこしいことを言うと10進数と16進数という考え方で成り立っています。
RGB
順を追って説明すると、 「RGB」は「Red(レッド:赤)」「Green(グリーン:緑)」「Blue(ブルー:青)」の3色の頭文字をとったもので「色の三原色」と言われています。
絵の具を混ぜ合わせるイメージを持っていただくと分かりやすいです。
これは10進数という数字で表されるもので、10進数とは、普段私たちが数を数えるときに使う1、2、3、・・・9、10、11・・・と、10になったら、一の位だけでなく、十の位が1になる、というものです。
この10進数を利用して、0〜255(大きい方が濃い)の数値を、R、G、Bそれぞれで表していて、「赤」については、次のようになります。
R 255
G 0
B 0
「Red(赤)」を一番濃くして、「Green(緑)」と「Blue(青)」は0なので使用しない、つまり、「赤」になるわけです。
それぞれの割合によって色を表現しています。
この理屈で行くと、Gを255、RとBを0にすると、「緑」になる、ということです。
これを一行で表すと「RGB(255,0,0)」が「赤」を表します。
このようにそれぞれ「色の三原色」をどのように組み合わせるか、0〜255の数値で組み合わせて色を表現するので約167万色を表現できます。
これについては、普段はあまり意識しませんが、色の設定の部分で表示されているものです。
上記の例では白のため、「RGB(255,255,255)」となっています。
そのため、自分で色を設定する場合には、エクセル上で普段通り色を設定した上で、この「色の設定」を見れば、RGBの値をいくつにすればよいか、わかります。
ここの数値を見て、VBAのコードに記載することで希望の色に設定することができます。
Hex
Hexって聞いたことありますか?
一番馴染みがないものかもしれません・・・
16進数というもので表現されていて、詳しくは次回の内容としますが、0〜F(0〜9とA〜F)で表現します。
先ほどの「色の設定」の一番下部に「Hex」があり、白は「#FFFFFF」と記載されています。
このように「#」と「16進数」(0〜F)を組み合わせて表現をします。この「#FFFFFF」はRGBで言うと「RGB(255,255,255)」と同様の意味になります。
ちなみに「赤」は「#FF0000」と表現します。
ただし、VBA上では「赤」は「&H0000FF」と表現します。VBA上では「&H」から始めます。
ややこしいことをお伝えしていますが、詳しくは次回お話しします。
今回はHexは「なんかややこしそう・・・」ぐらいで大丈夫です。
まとめ
色については、次の3つの方法で設定をすることができます。
①インデックス番号(ColorIndex)
②RGB
③Hex
①③については、「色の設定」でも簡単にわからないので、②については「色の設定」を見ることでわかるので、それをそのままコードの数値に設定してあげれば良いだけです。
細かく色を設定するのであれば、私としては②RGBをお勧めします。
コメント