[[20180509090322]] 『アクティブなセルの塗りつぶしについて』(hiro) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『アクティブなセルの塗りつぶしについて』(hiro)

選択中のセルを塗りつぶすだけの場合、VBAだとたとえば次のように書けると思います。

Range("E2").Interior.ColorIndex = 6

ところが操作履歴をマクロで記録すると、次のようになっていました。

    With Selection.Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .Color = 65535
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With

今、一つ一つ調べてはいるのですが、なかなか要領を得ず…
とりあえずお聞きしたいのはセルの色を指定するのに、本当はこんなに色々と設定しなくてはならないのかということです。
ColorIndexで指定できるのは、ごく大まかなものだけなのでしょうか。

よろしくお願いします。

< 使用 Excel:unknown、使用 OS:unknown >


>ColorIndexで指定できるのは、ごく大まかなものだけなのでしょうか。
質問がよくわかってないですけど、ColorIndexプロパティで設定できるのは、「塗りつぶす色は、カラーパレットの何番か。」だけですからパレットにない色は設定できないとおもいますし、塗りつぶすパターンの指定などはそもそもプロパティが違うのでColorIndexプロパティで操作できないとおもいます。
(もこな2) 2018/05/09(水) 09:52

色の指定は、古くからのColorIndexによるものと、Colorによるどちらでも可能です。Colorの方が、RGB表現できる全ての色に対応するので、マクロの自動記録では、その他の色指定でも通じるよう、Colorが使われるようです。 Excelはそう作られているので、受け入れるしかないでしょう。

色にはColorプロパティが使われるのと同様に、自動記録は他のプロパティも同時指定された場合でも対応できるよう、いろいろなプロパティの代入を出力します。 実際に変更した以外のものはデフォルト値なので、不要と思えるものはコメントアウトして試すと良いでしょう。 そのうち、どれが無駄なものか判ってきます。

疑問に思ったときは、質問の前に、ヘルプを調べてみてください。 ヘルプには多くのヒントが含まれています。 探すべきは、1にヘルプ、2にWeb検索、それでも判らなければ、3に質問です。 ヘルプを見れば、ColorIndexで指定できる数字と色の一覧が判るでしょう。というか、色の一覧を見ていないと、6が黄色だということが判らなかったはずですよ。
(???) 2018/05/09(水) 09:57


 昔(Excel2003まで)はマクロの記録でも
 Range("E2").Interior.ColorIndex = 6 
 のように記録されていました。
 ColorIndexで指定できる数は最大56で、これはExcel2003まではブックで表示できる色の数が
 56だったことに由来しているからと記憶しています。

 現在(Excel2007以降)はブックで表示できる色の数が1600万色まで増強されているため、
 マクロの記録ではColorIndex(最大56は変更なし)では許容しきれず、くColorプロパティが
 使用されるようになったと思います。

 ColorIndexは昔の名残と考えていいかもしれません。
(ろっくん) 2018/05/09(水) 10:39

ご助言有難うございます。一応ですが「1にヘルプ、2にWeb検索、それでも判らなければ、3に質問」の手順は踏んでいます。それでも理解できないのは調査不足、知識不足なせいなのでしょうが。お手数おかけしてすみません。

皆さんのコメントのおかげで、理解しました。
ありがとうございます。

(hiro) 2018/05/09(水) 10:58


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.