プロが教えるわが家の防犯対策術!

Excel VBAでのセルやシェイプの色指定について。
たとえば、”red”という文字列を用いて

….ForeColor.RGB = rgbRed

のように色名にできますか?
単純に、頭に”rgb”を付けるような文字列では扱えないようなので。

質問者からの補足コメント

  • 回答くださった方々、ありがとうございます。

    文字列をキーにして、まるっと設定してあげるような方法をとるしか無いのですね。
    色を表す文字列情報があるんだから、それを利用できそうな気がしちゃうんですけどね…もどかしいです。

    望んでいる処理は「出来ない!」ということで締め切りたいと思います。

      補足日時:2022/11/18 18:59

A 回答 (4件)

マクロで対応した関数を作るしかないでしょうね。


複数の条件を取り扱うのであれば、Select Case が便利です。

Function ColorValue(color_name As String) As Long
Select Case color_name
Case "red" 
ColorValue = rgbRed
・・・・・
End Select
End Function
のような関数を作って、

….ForeColor.RGB = ColorValue("red")

とすれば、可能だと思います。
    • good
    • 0
この回答へのお礼

ありがとうございます。
同じ疑問を持った方への具体的な参考になると思いましたので、こちらをベストアンサーとさせていただきます。

お礼日時:2022/11/18 19:05

#1です


そういう事でしたか、#3様が回答されている通り、Functionで対応するとかclassを作るとか・・シートでマトリックスを作って取得するなどでしょうか・・
ちなみに値(実体)で出力(取得)する方が配色設定が広がると思います
    • good
    • 0

あれ・・


….ForeColor = rgbRed
こういう事かな・・
    • good
    • 0

こんにちは


色の定数の事を言っているの? vbRed

https://excel-ubara.com/excelvba4/EXCEL285.html
    • good
    • 0
この回答へのお礼

ありがとうございます。
わかりにくくてすみません。

“red”という文字列情報の頭に”rgb”をつけて
“rgbRed”という文字列にしたところで、カラー定数(数値)は得られませんよね。

“red”という文字列情報から、rgbRed を得たいのです。

お礼日時:2022/11/15 11:29

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