Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


4970 / 13646 ツリー ←次へ | 前へ→

【53302】明度によるRGB値の調整について SAT 07/12/26(水) 15:53 質問[未読]
【53305】Re:明度によるRGB値の調整について neptune 07/12/26(水) 18:26 発言[未読]
【53306】Re:明度によるRGB値の調整について りん 07/12/26(水) 21:20 発言[未読]
【53318】Re:明度によるRGB値の調整について SAT 07/12/27(木) 10:30 お礼[未読]
【53321】Re:明度によるRGB値の調整について りん 07/12/27(木) 18:19 発言[未読]
【53326】Re:明度によるRGB値の調整について SAT 07/12/28(金) 9:24 お礼[未読]
【53317】Re:明度によるRGB値の調整について SAT 07/12/27(木) 10:12 発言[未読]

【53302】明度によるRGB値の調整について
質問  SAT  - 07/12/26(水) 15:53 -

引用なし
パスワード
   ※質問
あらかじめ設定したRGB,HSB値を元に
明度の値のみを変化させて自動的に色を設定するマクロの実現方法を教えてください。
(ツール→オプション→色→ユーザ設定の明るさ調整による色の自動調整機能をVBAで実現させたい)

※詳細
エクセル2000で(同系色で濃度が違う)色見本シートを大量に作成しています。

現在は
ツール→オプション→色→ユーザ設定にてスタート色を選定し、
明るさの値を少しずつ調整してはユーザ色を作成してセルに設定しています。

このとき、明度を調整するとRGB値が自動で変化します。
このエクセルの色調整(明度変化によるRBG値の算出)機能をVBAで実現させたいです。
機能として存在しているので、VBAで実現できるのでは!?と色々調べましたが、
そのような関数は見つけられませんでした。

エクセル2000は色パレットが56個という制限があるので、
こちらにあらかじめRGB値をセットする必要があることは調べました。

よろしくお願いします。

【53305】Re:明度によるRGB値の調整について
発言  neptune  - 07/12/26(水) 18:26 -

引用なし
パスワード
   ▼SAT さん:
こんにちは

回答ではないし、回答も出来ないのですが、
>エクセル2000で(同系色で濃度が違う)色見本シートを大量に作成しています。
との事ですが、これはワークシートのセルの色を変えていると言う事ですか?

ご自分で書いているようにパレットを使用すると、56個の制限がありますよね。
UserForm+Labelを使用して、Labelの背景色を変化させるという手法を
取ると、その制限はありませんから、微妙な調整が出来るんじゃないでしょうか?
それぞれの設定なんかはワークシートに保管しておけば良いし。

TabStripを使うと、そんなにコントロールを使う事も無いでしょうし。
実用にはなるような気がします。

と、提案してみるものの、「明度変化」の知識が無いもので
具体的には提案できませんが。。。

ちなみに、RGB値の計算だけなら、RGB関数ってのがあります。

あっ、私はサンプルは書きますが、そのまんま使えるのは多分書きませんので。
あらかじめお断りしておきます。

【53306】Re:明度によるRGB値の調整について
発言  りん E-MAIL  - 07/12/26(水) 21:20 -

引用なし
パスワード
   こんばんわ。

>あらかじめ設定したRGB,HSB値を元に
>明度の値のみを変化させて自動的に色を設定するマクロの実現方法を教えてください。

ここを参考にがんばってみられてはいかがでしょうか。
htt p://www13.plala.or.jp/kymats/study/gazou/HSB/HSB.html

ちなみに。
私はグラデーションマップみたいなのを作る時は、セルと同じサイズのオートシェイプ(四角形)を置き、それに色を設定して(『四角形』.Fill.ForeColor.RGB=RGB(赤,緑,青))、セルを塗りつぶしているように見せています。

【53317】Re:明度によるRGB値の調整について
発言  SAT  - 07/12/27(木) 10:12 -

引用なし
パスワード
   ▼neptune さん:

アドバイスありがとうございます。


>>エクセル2000で(同系色で濃度が違う)色見本シートを大量に作成しています。
>との事ですが、これはワークシートのセルの色を変えていると言う事ですか?
そうです。
セルの色を塗っています。
照明色のサンプルを作るのですが、
A4・1シートに微妙な変化をした10パターンくらいをOHPのような透過シートに印刷し、
照明を当てることで、客先・取引先と色の打ち合わせします。
(原始的ですが、プリンタ指定で対応しています。)

なので、ユーザはそれぞれの色がどのRGB値かを管理する必要があります。
また、微妙に明るさ調整するのにEXCELのパレットの明度設定機能を使います。

なのでパレット56という制限は実用上は問題ないのですが(使いまわすので)
オプションを開き、明るさを調整し、RGB値を取得し、パレット保存し、セルの色を塗る
という一連の作業の自動化ができればと思います。

RGB関数はもちろん知っています。
明度変化によりRGB値を自動取得できるようになった時は、アドバイスいただいたユーザフォーム.ラベルを使用したいと思います。

ありがとうございました。

【53318】Re:明度によるRGB値の調整について
お礼  SAT  - 07/12/27(木) 10:30 -

引用なし
パスワード
   ▼りん さん:

アドバイスありがとうございます。

紹介いただいたサイトを見ました。

やはり簡単ではありませんね。
HSB→RGB変換は難しいことが書かれていました。
それにしてはエクセルでは見事に実現してますね。
あのエクセルの色設定コントロールがそのまま使えればいいんですけど。

がんばって何か方法を探してみます。

オートシェイプの色指定はパレットを使わないんですね!
これには気付きませんでした。
少し作業が効率化できると思います。

ありがとうございました。

【53321】Re:明度によるRGB値の調整について
発言  りん E-MAIL  - 07/12/27(木) 18:19 -

引用なし
パスワード
   SAT さん、こんばんわ。

>がんばって何か方法を探してみます。
今頃ググってみるのもなんですが。
htt p://www.google.co.jp/search?hl=ja&q=HSB+VBA+RGB&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=
1番上に出てきたサイト
htt p://makotowatana.ld.infoseek.co.jp/vba_color.html

参考になるかと思います。

【53326】Re:明度によるRGB値の調整について
お礼  SAT  - 07/12/28(金) 9:24 -

引用なし
パスワード
   ▼りん さん:

ありがとうございます。

実は紹介いただいたサイトは以前見つけてたのですが、
そこで紹介されていたcolor.xlsというマクロを見逃してました。
このマクロをうまく使うと明度でRGB値を算出できるようです。
ソースも見れるので、解析してカスタマイズしたいと思います。

本当にありがとうございました。

4970 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free