- ベストアンサー
VBAの色名称
Excel97を使ってます。 VBAで色を指定する際、vbRedなどと記述しますが、他の色の名称が一覧になっているようなものを探しています。 宜しくお願いします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
たぶんLightBlueとかはHTMLの話ですよね。 もしVBAができるなら以下のソースではだめでしょうか? ちょっと手抜きですけど.... あ、ARCさんのいうとおり色は丸められてるみたいです。 SUB mkCOLORS() Dim i As Integer Dim j As Integer '赤系 For i = 1 To 20 For j = 1 To 20 Cells(i, j) = "RGB(255, " & i * 10 & "," & j * 10 & ")" Cells(i, j).Font.Color = RGB(255, i * 10, j * 10) Next Next '緑系 For i = 1 To 20 For j = 1 To 20 Cells(i + 21, j) = "RGB(" & i * 10 & ",255," & j * 10 & ")" Cells(i + 21, j).Font.Color = RGB(i * 10, 255, j * 10) Next Next '青系 For i = 1 To 20 For j = 1 To 20 Cells(i + 42, j) = "RGB(" & i * 10 & "," & j * 10 & ",255)" Cells(i + 42, j).Font.Color = RGB(i * 10, j * 10, 255) Next Next END SUB みづらくてすいません
その他の回答 (4)
- ARC
- ベストアンサー率46% (643/1383)
あ、HTMLの色定数と同じにするなら、 Const vbLightBlue = &HE6D8AD 'Hex(RGB(230, 216, 255)) でしたね。 &Hに続けて、青,緑,赤の順に16進で書きます。
- ARC
- ベストアンサー率46% (643/1383)
VBにどんな定数が登録されているのかを知るには「オブジェクトブラウザ」を使います。 VBEの画面でF2キーを押し、オブジェクトブラウザを表示させます。 んで、「vbRed」を検索すると、「VBA.ColorConstants」ってのが見つかると思います。 ここを見ると、どんな色が定数として登録されているのかが分かります。 つまり、「ごくごく基本的な色しか登録されていない」っていうのが結論です(汗)。 自分で色定数を登録してもいいんじゃないでしょうか。 コードの先頭に Const vbLightBlue = &HFF8080 'Hex(RGB(128, 128, 255)) とか書いたりして(^^;
- ARC
- ベストアンサー率46% (643/1383)
欲しい色が無ければ、自分で作ってしまえばいいんですよ。 Range("A1").Font.Color = vbRed は、 Range("A1").Font.Color = RGB(255, 0, 0) と同じです。RGB関数に、(赤の濃度,緑の濃度,青の濃度)の順で指定してやると、任意の色を作れます。 ただし、Excelの場合ですと、実際に指定できる色は限られています。 微妙な色を指定しても、自動的に「Excelで使えるそれに似た色」に丸められてしまうのです。 具体的には、Excelの色選択画面に表示される色の、どれかになってしまいます。 Wordとかですと、指定した色がそのまま表示されるんですけどねぇ(^^;
お礼
ありがとうございました。 RGBは知っていたのですが、例えばvbLightBlueとすると、薄い青になる・・といったものを考えていました。 このようなものが一覧になってどこかで公開されてないものでしょうか? ちなみに、質問にはExcelと書きましたが、Wordでも同じことをしたいと思ってます。
- Yackn
- ベストアンサー率42% (12/28)
分からないときはMSDNをみるといいですよ。ヘルプより充実しているかも。 vbRedとかは「カラー定数」というものです。
お礼
ありがとうございました。 こんな便利なHPもあったんですね。 欲を言えば、薄い緑とか濃い黄色とか、あいまいな色のカラー定数があればと思ってます。 他にないでしょうか?
お礼
皆さんのご回答ありがとうございました。 結局はRGBしかないようですね。