重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

フォームの背景の色をデザインビューで確認すると#FF9A05になってるので、
フォームに乗ってるコントロールの色をVBAで
ctl.BackColor = &HFF9A05に指定したのですが
実際にコードを実行すると、
フォームの色はオレンジで、vbaでctl.BackColor = &HFF9A05で指定した色は水色になります。

なぜ全然違う色になっちゃうのでしょうか?
どちらもオレンジにしたいです。
なぜコントロールはvbaで行うかというと、細かい条件を指定したいからです。
よろしくお願いします。

A 回答 (3件)

No.1です。



>はどうやってこの値がわかったのですか?

についてですが、
PCにある電卓を使用しました。

Windows8でやってみると
アプリの「電卓」を起動 → 普通の電卓になっていると思いますので → 表示 → プログラマ → 16進数を選択
→ 「9A」と入力 → 10進数 を選択 → 154 と表示されます。

FFは電卓を使用しなくても 255 という数値と判っている(当然電卓使用でも「255」となります)ので
RGB値表示は前回のようになると思います。

※ Windows VISTA の場合は手元にないのでわかりませんが、Windows XPだと
すべてのプログラム → アクセサリー → 電卓 だったと思います。
そこで「関数電卓」を選べば16進数を10進数に変換・その逆もできたはずです。m(_ _)m

この回答への補足

電卓を使ってやってみました!
仰ってるとおりになりました!感動です。
再度ご回答ありがとうございます。

補足日時:2013/03/01 20:09
    • good
    • 0
この回答へのお礼

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

お礼日時:2013/03/01 20:07

何度もごめんなさい。



>= &HFF9A05を=&H059AFFに変換するにはどうすればいいのでしょう
に関する補足質問でしたね!

前回は16進数を単に10進数に変換するだけの方法でした。

VBAのコードでは16進数表示のRGB値はR・G・Bの順ではなく、逆になるという回答をNo.1でした通りです。
2桁ずつがR(レッド)・G(グリーン)・B(ブルー)の数値になりますので
質問にある順番を単純に B・G・R の順に並び替えただけです。

すなわち16進数表示の場合はRGB値は調べていません。
何度も失礼しました。m(_ _)m
    • good
    • 0
この回答へのお礼

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

お礼日時:2013/03/01 20:07

こんばんは!



Colorプロパティ値を16進表記する場合は
RGB の順ではなく BGRの順になりますので

>ctl.BackColor =&H059AFF

としてみてください。
(確定すると&Hの次の「0」はなくなり &H59AFFになると思います)

※ RGB値を10進表示する場合は
>ctl.BackColor =RGB(255,154,5)
という感じになると思います。m(_ _)m
    • good
    • 0
この回答へのお礼

=&H059AFFにしたらうまくできました!

しかし= &HFF9A05を=&H059AFFに変換するにはどうすればいいのでしょう?
tom04様はどうやってこの値がわかったのですか?

「RGB の順ではなく BGRの順になります」がヒントだと思いますが、???です。

お礼日時:2013/02/24 08:32

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