• ベストアンサー

色が全然違う色になる

フォームの背景の色をデザインビューで確認すると#FF9A05になってるので、 フォームに乗ってるコントロールの色をVBAで ctl.BackColor = &HFF9A05に指定したのですが 実際にコードを実行すると、 フォームの色はオレンジで、vbaでctl.BackColor = &HFF9A05で指定した色は水色になります。 なぜ全然違う色になっちゃうのでしょうか? どちらもオレンジにしたいです。 なぜコントロールはvbaで行うかというと、細かい条件を指定したいからです。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.2

No.1です。 >はどうやってこの値がわかったのですか? についてですが、 PCにある電卓を使用しました。 Windows8でやってみると アプリの「電卓」を起動 → 普通の電卓になっていると思いますので → 表示 → プログラマ → 16進数を選択 → 「9A」と入力 → 10進数 を選択 → 154 と表示されます。 FFは電卓を使用しなくても 255 という数値と判っている(当然電卓使用でも「255」となります)ので RGB値表示は前回のようになると思います。 ※ Windows VISTA の場合は手元にないのでわかりませんが、Windows XPだと すべてのプログラム → アクセサリー → 電卓 だったと思います。 そこで「関数電卓」を選べば16進数を10進数に変換・その逆もできたはずです。m(_ _)m

wfjzbjgtqxvmg
質問者

お礼

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

wfjzbjgtqxvmg
質問者

補足

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

その他の回答 (2)

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.3

何度もごめんなさい。 >= &HFF9A05を=&H059AFFに変換するにはどうすればいいのでしょう に関する補足質問でしたね! 前回は16進数を単に10進数に変換するだけの方法でした。 VBAのコードでは16進数表示のRGB値はR・G・Bの順ではなく、逆になるという回答をNo.1でした通りです。 2桁ずつがR(レッド)・G(グリーン)・B(ブルー)の数値になりますので 質問にある順番を単純に B・G・R の順に並び替えただけです。 すなわち16進数表示の場合はRGB値は調べていません。 何度も失礼しました。m(_ _)m

wfjzbjgtqxvmg
質問者

お礼

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

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.1

こんばんは! Colorプロパティ値を16進表記する場合は RGB の順ではなく BGRの順になりますので >ctl.BackColor =&H059AFF としてみてください。 (確定すると&Hの次の「0」はなくなり &H59AFFになると思います) ※ RGB値を10進表示する場合は >ctl.BackColor =RGB(255,154,5) という感じになると思います。m(_ _)m

wfjzbjgtqxvmg
質問者

お礼

=&H059AFFにしたらうまくできました! しかし= &HFF9A05を=&H059AFFに変換するにはどうすればいいのでしょう? tom04様はどうやってこの値がわかったのですか? 「RGB の順ではなく BGRの順になります」がヒントだと思いますが、???です。

関連するQ&A

  • フォームのコントロールのバックカラーの色を変えたい

    アクセス2007です。 フォームのコントロールのバックカラーの色をVBAで変えたいのですが Me.コンボ0.BackColor = #00B7EF とするとコンパイルエラーになってしまいます。 Me.コンボ0.BackColor = 255 なら大丈夫です。 「#00B7EF」はデザインビューの値から持ってきました。 (写真参照) 2003の時は、この方法で行けました。 #00B7EFを数値に変換する方法、 もしくは水色のコードを教えてください。 アドバイスよろしくお願いします。

  • Excel VBAでの背景色の指定

    VBAで背景色を指定する場合、16進で指定することができ、「&H」以降に16進を書くやり方のようです。 例えば灰色は「Range("A1").Interior.Color = &H808080」で問題ないです。 ところが赤や青は「&HFF0000」や「&H0000FF」と書いても「&HFF」に変わってしまいます。 「&HFF0000」は「&HFF」になっても赤になるので問題ありませんが、「&H0000FF」も「&HFF」になり赤になってしまいます。 どういうふうに記述すけばよろしいのでしょうか。 どなたか教えてください。

  • VBAでコントロールの数をカウント。結果が違う

    Access 2003のフォームについてお教えください。 フォームデザインビューで、「Form1」にテキストボックスが1つ配置されています。 レコードソースは連結されているので、フォームビューで見ると現在10のテキストボックスが フォームには表示されています。 やりたい事 フォームビューで見た時のコントロールの数をカウントしたい。ここでは、「10」という 結果が欲しいです。 そこで下記のコードを書き実行しましたが、「1」としか表示されません。 デザインビューで見ると、テキストボックスの数は1なので、それが表示 されている感じがします。 フォームビューで見た時のコントロールの数を数えるにはどのようにしたらよいでしょうか? Private Sub Form_Load() Dim ctl As Control Dim counter As Integer On Error Resume Next counter = 0 For Each ctl In Me.Controls 'コントロールがチェックボックスか判別 If TypeOf ctl Is TextBox Then counter = counter + 1 End If Next ctl msgbox counter End Sub

  • VBA フォームの色 lightcyan

    アクセスのフォームの色を lightcyan;にしたいのですが フォームのプロパティの背景色で 「lightcyan」とすると プロパH地の設定値として指定した値が正しくありません。 となってしまいます。 ちなみにVBAで行ないたいのですが、 Forms("FForm").詳細.BackColor = lightcyan としても、 コンパイルエラー 変数が定義されていません。 になります。 &H●●●●●● という形式にすればいいと思うのですが、 lightcyanは、&H●●●●●●だとどうなるのでしょうか?

  • VBAでタブのページを削除するには?アクセスです

    フォームにタブコントロールを置いて、ページを6つにして、コマンドボタンを置きました。 3から6ページをVBAで削除する事は可能でしょうか? (1・2は残したいです) 「ページを削除する」というVBAコードがわかりません。 Private Sub コマンド7_Click() Dim ctl As Control For Each ctl In Forms(Me.Name).Controls If ctl.ControlType = acPage Then Debug.Print ctl.Name 'ここでページを削除したい End If Next ctl End Sub あと、もしかしてデザインビューでないと削除できないですか? であれば、DoCmd.OpenForm Me.Name, acDesign を追加しようと思っています。 ご回答よろしくお願いします。

  • picturebox の BackColor は透明に出来ないのですか?

    教えていただきたいことがあります。 [デザイン]上で、picturebox の BackColor を webColor の Transparent(透明) に指定したいのですが "コントロールは透明な背景色をサポートしません。"とエラーが出ます。 BackColor を透明には出来ないのでしょうか? よろしくお願いします。

  • アクセス フォームの背景の色を自分好みの色を指定したい

    フォーム色を指定したいのですが 右クリック→「塗りつぶし/背景の色」を見ると限られた色しか選択できないように見受けます。 例えばテキストボックスの背景の色なら、 「色の作成」で「色の設定」ダイアログを開き、自分好みの色を指定することが可能ですが フォームの背景の色は自分好みの色を選択するのは無理ですか?(VBAでも?) 宜しくお願い致します。 (2003です)

  • Excelコマンドボタン名を変数にして背景色を変更

    Excel VBA で、コマンドボタン名を変数にして背景色を変更したいのですが どうすればできますでしょうか? (フォームのボタンではなくて、シートにデザインするコントロールツールボックスのボタンです。) Const strSheet = "シート" Const strBtnNM = "ボタン" Worksheets(strSheet).ボタン.BackColor = RGB(255, 255, 0)    ←これはできます! Worksheets(strSheet).strBtnNM.BackColor = RGB(255, 255, 0)  ←こんな様な事をしたいです。 宜しくお願いします。

  • 「フォーカスのあるフィールドに色を付ける」vba

    帳票フォームの全てのコントロールに 条件付き書式で 「フォーカスのあるフィールドに色を付ける」を行いたいのですが コントロールが多すぎる為VBAでループさせたいのですがコードがわかりません。 http://www.tsware.jp/tips/tips_187.htm これをVBAで行いたいです。 VBAでの条件付き書式は Sub Sample() Dim Field As String Dim myFormName As String With Forms(myFormName).Controls(Field) With .FormatConditions .Delete With .Add(acExpression, , "[" & Field & "]=""あ""") .BackColor = 225 End With End With End With End Sub こんな感じで出来る事は知ってますが、 vbaで「フォーカスのあるフィールドに」と言う条件の付け方がわからないので教えてください。

  • リンクの色を2色で使い分けたい

    はじめまして。 良かったらどなたか教えて下さい。 今、一枚のページを作っているのですが、背景色を"#ffffff"(白)とし、そのリンクを以下の様に指定しました。 <style type="text/css"> <!-- A { text-decoration: none} A:link {color:#000000;} A:visited {color:#ffffff;} A:hover {color:#ff6600;} --> </style> 「白地に黒文字リンク、オンマウス時はオレンジ」という指定です。 ところが、同じページ内でテーブルを組み、その背景を#000000と指定する事になりまして、その中にリンクを入れると、「黒字に黒文字リンク、オンマウス時はオレンジ」 でリンクの文字が見えなくなってしまいます。 hoverの効果(オンマウス時はオレンジ)の効果を残しつつ、リンク色を二色に分ける方法は無いでしょうか? (クラス指定の使い方がよく判ってないので、自分で指定するとエラーしか出ないのです)。 お忙しい所申し訳ございませんが、宜しくお願い致します。

    • ベストアンサー
    • HTML

専門家に質問してみよう