Sub Macro1()
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorAccent1
.TintAndShade = 0.599993896298105
.PatternTintAndShade = 0
End With
End Sub
Sub DotColorSample()
Dim Red As Long
Dim Gre As Long
Dim Blu As Long
Dim num As Long
'黒
Red = 0
Gre = 0
Blu = 0
num = Red * 256 ^ 0 + Gre * 256 ^ 1 + Blu * 256 ^ 2
Range("D1").Value = num
Range("E1").Interior.Color = num
'赤
Red = 255
Gre = 0
Blu = 0
num = Red * 256 ^ 0 + Gre * 256 ^ 1 + Blu * 256 ^ 2
Range("D2").Value = num
Range("E2").Interior.Color = num
'緑
Red = 0
Gre = 255
Blu = 0
num = Red * 256 ^ 0 + Gre * 256 ^ 1 + Blu * 256 ^ 2
Range("D3").Value = num
Range("E3").Interior.Color = num
'青
Red = 0
Gre = 0
Blu = 255
num = Red * 256 ^ 0 + Gre * 256 ^ 1 + Blu * 256 ^ 2
Range("D4").Value = num
Range("E4").Interior.Color = num
'灰
Red = 128
Gre = 128
Blu = 128
num = Red * 256 ^ 0 + Gre * 256 ^ 1 + Blu * 256 ^ 2
Range("D5").Value = num
Range("E5").Interior.Color = num
'白
Red = 255
Gre = 255
Blu = 255
num = Red * 256 ^ 0 + Gre * 256 ^ 1 + Blu * 256 ^ 2
Range("D6").Value = num
Range("E6").Interior.Color = num
End Sub
多和田 真也さんの投稿
(投稿ID: 2648)
もしかしたら、今更な質問なのかもしれませんが、教えてください。
動画や模範解答の中では、自動記録で色を確認する際に、2桁の数字で色が指定されているようなのですが、私の利用している環境では
まったく違う指定になります。5桁の数字で表示されたり、もしくは全く違う表現で表示されたりします。
例えば、今回のミニセミナーNo.10の例では、水色の背景にする操作を自動記録すると、こんな感じで記録されます。
できれば、動画の中で扱われているように、.Interior.ColorIndex = 8
のような、1桁とか2桁の数字で色番号が表記されるように自動記録の設定を変更したいと思っているのですが、その方法が分かりません。
どうしたらよいのでしょうか?
小川 慶一さんのコメント
(コメントID: 4100)
多和田 真也 さん:
いえいえ。
エクセルのバージョン2003までと2007以降では、自動記録でできあがるコードの内容に違いがあります。
本当はそのことについてきちんと解説するべきなのかもしれません。
以下、とりいそぎ。
.ColorIndex と .Color の違いは、以下のとおりです。
.ColorIndex :
予め用意された色のうちからどの色を使うか指定している。
.Color :
色を赤緑青の光の三原色のそれぞれをどのくらい明るくするか?を直接指定している
- - -
サンプルコード1: 以下では、 .ColorIndex何番が何色かを調べます。何番まであるかを知りたいので、あえて、実行時エラーで処理が中断するまで調査を継続するように書いてみました。
- - -
.Color での発色指定は以下の数値によって行います。
赤の発色: 0-255 の 256段階 * 256 ^ 0
緑の発色: 0-255 の 256段階 * 256 ^ 1
青の発色: 0-255 の 256段階 * 256 ^ 2
サンプルコード2: 以下では、各種の色を .Color で指定してみました。
もっとも、これでは直感的に色を指定できなくて面倒なので、きちんと色指定したいときにはRGB関数を使うのが一般的です。
サンプルコード3: 以下では、各種の色を .Color で指定してみました。さらに、RGB関数を使用しています。
ということで、まずはここまでいかがでしょう?
で、最後に、
>できれば、動画の中で扱われているように、.Interior.ColorIndex = 8
>のような、1桁とか2桁の数字で色番号が表記されるように自動記録の設定を変更したいと思っているのですが、その方法が分かりません。
に対する僕の見解を述べておきます。以下のとおりに考えています。
[1] 代表的な(自分がよく使う) .ColorIndex の数値はたくさんマクロを書いているうちになんとなく覚えてしまうので、存外不便は感じない。いざとなったら前記サンプルコード1のようなものを作って自分で調査すればよい。
[2] .ColorIndex だけで 57色あるので、これだけあれば実務で不便を感じることはないが、 .ColorIndex で自分の好みの色を見つけられなかったら、 .Color を使って色を作ればよい。
多和田 真也さんのコメント
(コメントID: 4116)
今のところ、仕事で使うときは私もRGBで作成することが多いです。
私は、職場ではExcel2007、自分のパソコンではExcel2016を使っているのですが、双方で、
任意のセルで右クリック>セルの書式設定>塗りつぶし>その他の色ボタンをクリック
で、RGBでの色設定を確認できるので。
小川 慶一さんのコメント
(コメントID: 4117)
>今のところ、仕事で使うときは私もRGBで作成することが多いです。
そうなんですね。
僕は基本 .colorindex です。
理由は、前回も書いたとおり、以下です。
> 代表的な(自分がよく使う) .ColorIndex の数値はたくさんマクロを書いているうちになんとなく覚えてしまうので、存外不便は感じない。いざとなったら前記サンプルコード1のようなものを作って自分で調査すればよい。
実務では時間が惜しくて色調整とかしていなので。