dポイントプレゼントキャンペーン実施中!

こんにちは。
EXCEL VBAでセルA1の西暦の下一桁で10種類の色分けをしたのですがご教示ください。

Sub test()

Dim i As integer

Set i = Right(Cells(1, 1), 1)

Select Case i

Case 1

Cells(1, 1) = Interior.Color.RGB(200, 100, 200)

Case 2

Cells(1, 1) = Interior.Color.RGB(300, 100, 200)



end select

end sub

A 回答 (3件)

こんにちは!



>Interior.Color.RGB(300, 100, 200)
てな記載がありますが、
RGB値はそれぞれ 0~255 の256種類ずつしかありません。

もちろん Select Case で分岐する方法もありますが、
何か規則性があるのでしょうか?

ない場合はどこかのセルに10色の色サンプルで塗りつぶしておき、それを参照するのが簡単なのでは?

※ 直接の回答でなくてごめんなさい。m(_ _)m
    • good
    • 0

で、何を聞きたいの?



コードは書き掛けているのだから、やってみれば良いのでは?

それで、何がうまく行かないのか?

そこ確認すればよい

右から一文字を抜き出すのが良いのか
それとも、10で割った余りを使うのか

色の指定は、RGB以外にも有るね
    • good
    • 0

質問者さんのコードを見ると「A1セルの値の右から1桁目」を取得しています。

ということは、A1セルには「2019」と表示されているはずです。であれば、こんな感じでイケけると思います。

i = Right(Cells(1, 1).Text, 1)

ちなみに「Set」は不要です。付けるとエラーになります。
ついでに言っておくと、Right関数は文字列を返すので、Integer に代入するのは感心しないのですが、下1桁が数字であれば、とりあえず問題ないです。

それから次の構文って、コンパイルエラーになりませんか?わたしのExcelではダメでしたが・・・。
Cells(1, 1) = Interior.Color.RGB(200, 100, 200)

コンパイルエラーくらいは、ご自分で解決してください。ご検討をお祈りします。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!