Userform Label Backcolorの色イメージが意図したものになりません。

このQ&Aのポイント
  • Userform Label Backcolorの色設定が意図したものにならない場合の対処方法を紹介します。
  • UserForm1のLabel1とLabel2の色イメージがRange("A1").Interior.ColorとRange("A2").Interior.Colorと乖離する場合の対処方法を解説します。
  • UserForm1のLabel1とLabel2の色イメージが意図したものにならない場合、RGB値の設定や他のプロパティの確認を行う必要があります。
回答を見る
  • ベストアンサー

Userform Label Backcolor

Userform Label Backcolorの色イメージが意図したものになりません。 どうすればいいか教えて下さい。 UserForm1.Label1.BackColor = RGB(204, 204, 102) UserForm1.Label2.BackColor = RGB(255, 204, 204) を実行したときのUserForm1のLabel1とLabel2の色イメージが Range("A1").Interior.Color = RGB(204,204, 102) Range("A2").Interior.Color = RGB(255, 204, 204) を実行したときのセルA1,A2の色イメージとが随分乖離しています。

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

  • ベストアンサー
  • MARU4812
  • ベストアンサー率43% (196/452)
回答No.2

> Excel 2003です。 セルの書式設定を見れば分かるけど、セルの背景色はカラーパレットに登録 されている色にしか設定できません。Excel の仕様です。 だから一番近い色に丸められています。 Debug.Print RGB(204, 204, 102) '6737100 Debug.Print RGB(255, 204, 204) '13421823 Range("A1").Interior.Color = RGB(204, 204, 102) Range("A2").Interior.Color = RGB(255, 204, 204) Debug.Print Range("A1").Interior.Color '10079487 Debug.Print Range("A2").Interior.Color '13434879 フォームの方は設定値のままのようですね。 ちなみにオートシェイプの背景色であれば256階調の設定ができます。

YON56
質問者

お礼

早速の回答ありがとうございます。 エクセルを始めてから10年近く経ちましたが、 「セルの背景色はカラーパレットに登録されている色にしか設定出来ない。」及びカラー設定した場合「カラーパレットの一番近い色に丸めらる。」ということを初めて教えて頂きました。 大変いいことを教わりました。 ありがとうございます。

その他の回答 (1)

  • nag0720
  • ベストアンサー率58% (1093/1860)
回答No.1

エクセルのバージョンは? 色の扱いはバージョンによって異なりますから。

YON56
質問者

補足

Excel 2003です。

関連するQ&A

  • UserFrom Labelにセルの装飾文字を表示

    Excel 2003 VBAにて UserFormに配置してあるLabelに セルの内容を表示させたいのですが・・・ 値は表示されますが、装飾文字(取り消し線、下線など)も セルの表示内容そのまま Labelにも表示できないのでしょうか? Sub 表示() userform1.Label1 = Range("A1") userform1.Show End Sub

  • VBA 実行時エラー1004 について

    いつもお世話になります。 作表をしていて、項目に色をつけたいのですが VBA 実行時エラー1004 Rangeメソッドは失敗しました。Globalオブジェクト というエラーが If Range(Cells(5, n - 4)).Interior.Color = RGB(252, 213, 180) Then のところででます。 If Range("Z5").Interior.Color = RGB(252, 213, 180) Then とすると、実行できます。 Sub カラー() Dim n As Long '列番号取得 '最終列取得 n = Cells(5, Columns.Count).End(xlToLeft).Column MsgBox "最終列は" & n   '= 今回は30です。 'セルの色を変える If Range(Cells(5, n - 4)).Interior.Color = RGB(252, 213, 180) Then Range(Cells(3, n - 3), Cells(5, n)).Interior.Color = RGB(230, 184, 183) Range(Cells(39, n - 3), Cells(41, n)).Interior.Color = RGB(230, 184, 183) Range(Cells(68, n - 3), Cells(70, n)).Interior.Color = RGB(230, 184, 183) Range(Cells(104, n - 3), Cells(106, n)).Interior.Color = RGB(230, 184, 183) Range(Cells(133, n - 3), Cells(135, n)).Interior.Color = RGB(230, 184, 183) Range(Cells(169, n - 3), Cells(171, n)).Interior.Color = RGB(230, 184, 183) Range(Cells(198, n - 3), Cells(200, n)).Interior.Color = RGB(230, 184, 183) Range(Cells(234, n - 3), Cells(236, n)).Interior.Color = RGB(230, 184, 183) Range(Cells(263, n - 3), Cells(265, n)).Interior.Color = RGB(230, 184, 183) Range(Cells(299, n - 3), Cells(301, n)).Interior.Color = RGB(230, 184, 183) Range(Cells(329, n - 3), Cells(331, n)).Interior.Color = RGB(230, 184, 183) Range(Cells(365, n - 3), Cells(367, n)).Interior.Color = RGB(230, 184, 183) Else Range(Cells(3, n - 3), Cells(5, n)).Interior.Color = RGB(252, 213, 180) Range(Cells(39, n - 3), Cells(41, n)).Interior.Color = RGB(252, 213, 180) Range(Cells(68, n - 3), Cells(70, n)).Interior.Color = RGB(252, 213, 180) Range(Cells(104, n - 3), Cells(106, n)).Interior.Color = RGB(252, 213, 180) Range(Cells(133, n - 3), Cells(135, n)).Interior.Color = RGB(252, 213, 180) Range(Cells(169, n - 3), Cells(171, n)).Interior.Color = RGB(252, 213, 180) Range(Cells(198, n - 3), Cells(200, n)).Interior.Color = RGB(252, 213, 180) Range(Cells(234, n - 3), Cells(236, n)).Interior.Color = RGB(252, 213, 180) Range(Cells(263, n - 3), Cells(265, n)).Interior.Color = RGB(252, 213, 180) Range(Cells(299, n - 3), Cells(301, n)).Interior.Color = RGB(252, 213, 180) Range(Cells(329, n - 3), Cells(331, n)).Interior.Color = RGB(252, 213, 180) Range(Cells(365, n - 3), Cells(367, n)).Interior.Color = RGB(252, 213, 180) End If End Sub どこが間違っているのか教えていただけないでしょうか? あと、スマートなコードの書き方もお願いします。

  • ListBoxのBackColor変更

    EXCEL2007のVBAにて質問です。 ユーザーフォームにリストボックスを配置して、選んだ物によって リストボックスの背景色を変更しようとしているのですが、うまくいきません。 例えばlistbox1を以下の様にセットし、 Private Sub UserForm_Initialize() UserForm1.ListBox1.AddItem ("ピンク") UserForm1.ListBox1.AddItem ("白") End Sub 下記の通り選んだ項目で背景色を変えたいのですが、 Private Sub ListBox1_Click() '選んだ項目で色変え If UserForm1.ListBox1.ListIndex = 0 Then UserForm1.ListBox1.BackColor = RGB(255, 128, 128) 'ピンクなら背景をピンクに Else UserForm1.ListBox1.BackColor = RGB(255, 255, 255) '白なら背景を白に End If End Sub クリックして項目を選択しても背景の色が変わりません。 何か見落としている事があるでしょうか? 又はやり方が悪いのでしょうか? お教え頂けると助かります。 以上、宜しくお願い申し上げます。

  • ListBoxへの表示 及び Labelの文字色変更について

    こんばんわ。いつもお世話になっています。 下記質問事項についてよろしくお願い致します。 1.ListBoxへの表示 ListBoxへ、セルA列に入力している文字を表示させたい。 しかし、A列には追加があるので、決まったRangeではない。 2.Labelの文字色変更 Range("a1")の文字色書式が赤なら、UserFormに貼り付けているLabelの文字色も 赤にしたい。また、CommandButtonの表示色も同じく変えたい。 よろしくお願いいたします。

  • userformのcommandbuttonでプロシージャーをランダムに実行させたい

    excel vba 初心者です。 userformにlabel1~label5、commandbutton1があります。 セル内の文字をlabel1~label5に表示させるプロシージャーを  PRO1() とつくりました。 セル範囲の違うものを PRO2()、PRO3().....PRO50() まで作りました。 commandbutton1 でこの50個のプロシージャーをランダムに実行させることはできるのでしょうか? よろしくお願いします。

  • Excelのセルの色指定をVBAから配列を用いて効率的に行う方法はあり

    Excelのセルの色指定をVBAから配列を用いて効率的に行う方法はありませんか? 例えば、セルに値を代入場合であれば、 Sub test() Dim arr(2, 2) As Integer Dim rg As Range Set rg = Worksheets(1).Range("A1:B2") arr(0, 0) = 1 arr(0, 1) = 0 arr(1, 0) = 0 arr(1, 1) = 1 rg.Value = arr  '<- これと同じように End Sub というように、セルへの値代入を配列を用いて、プロパティ呼出し1回で済ませることが出来ますよね。。 で、セルの色の場合も、同じように、 Sub test2() Dim arr(2, 2) As Long Dim rg As Range Set rg = Worksheets(1).Range("A1:B2") arr(0, 0) = RGB(0, 0, 0) arr(0, 1) = RGB(0, 255, 0) arr(1, 0) = RGB(0, 0, 255) arr(1, 1) = RGB(255, 0, 0) rg.Interior.Color = arr ' <- これをやりたい End Sub など、と書きたいのですが、最後の rg.Interior.Color = arr の所でエラー(型が一致しません)が出ます。 (全セレクトエリアが同カラーで指定だと、 rg.Interior.Color =RGB(0,0,0) などと出来るのですが。。。) オブジェクトの下のプロパティのプロパティを配列で 指定するうまい方法はありませんか? セル毎にループで回すと、Excelサイドが重いので、 時間を要してしますので困っています。 分かる方、是非よろしくお願い致します。

  • VBAでスクロールバーを動かしても値が変わらない

    図のようなスクロールバーを動かして、それぞれの値と、A4のセルの色が変わるものを作りたいのです。 プログラムは、 Sub スクロール1_Change() R = Range("C2").Value G = Range("D2").Value B = Range("E2").Value Range("A4").Interior.Color = RGB(R, G, B) End Sub Sub スクロール2_Change() R = Range("C2").Value G = Range("D2").Value B = Range("E2").Value Range("A4").Interior.Color = RGB(R, G, B) End Sub Sub スクロール3_Change() R = Range("C2").Value G = Range("D2").Value B = Range("E2").Value Range("A4").Interior.Color = RGB(R, G, B) End Sub ですが、スクロールバーに関連付けられていないようです。基本ですみませんが、関連付けるにはどうすればいいのでしょうか。

  • エクセル VBAが作動しない

    セルの色を変換するVBAとして、標準モジュールに以下のマクロを書き込んでいます。 Sub グレイに() Dim c As Range For Each c In Selection With c.Interior If .Color = RGB(162, 187, 220) Then .Color = RGB(190, 190, 190) End With Next End Sub エクセルに戻って、ctrl+F8で、マクロ名を選んで、実行すれば、実行されるはずなのですが、なぜかきちんと変換されません。 詳しく書くと、何度も何度も「実行」ボタンを押していると、セルの色が指定どおりグレイになるときもあるのですが、特に作動するときと作動しないときに操作の差はありません。 当然ですが、「必ず」実行して欲しいのですが、どこに問題があるのでしょうか? 教えてください。

  • Excelのマクロでの色の取得とループ方法

    はじめまして。 マクロ初心者です。 Excelのセルを使って地方別の日本地図を作成しています。 イメージとしてはこれのExcel版といった感じです。 http://hp-sozai.net/tm-map/nt03.html やりたいことは、別表の数字によってこの地方を色分けするマクロの作成です。 現在抱えている問題は、1.色の設定方法の改善、2.条件の設定方法の改善、3.現在のマクロの記述方法をシンプルにできないか、の3点です。 マクロは現在下記のように記述しています。 Sub 地方() Hokkaido = Range("T4").Value Select Case Hokkaido Case "" Range("P4").Interior.Color = QBColor(15) Case 1 To 4999 Range("P4").Interior.Color = QBColor(11) Case 5000 To 9999 Range("P4").Interior.Color = QBColor(9) Case 10000 To 14999 Range("P4").Interior.Color = QBColor(2) Case 15000 To 19999 Range("P4").Interior.Color = QBColor(10) Case 20000 To 24999 Range("P4").Interior.Color = QBColor(14) Case 25000 To 29999 Range("P4").Interior.Color = QBColor(13) Case 30000 To 34999 Range("P4").Interior.Color = QBColor(12) End Select Tohoku = Range("T5").Value Select Case Tohoku Case 1 To 4999 Range("O8,O9,P7:P10").Interior.Color = QBColor(11) Case 5000 To 9999 Range("P4").Interior.Color = QBColor(9) Case 10000 To 14999 Range("P4").Interior.Color = QBColor(2) Case 15000 To 19999 Range("P4").Interior.Color = QBColor(10) Case 20000 To 24999 Range("P4").Interior.Color = QBColor(14) Case 25000 To 29999 Range("P4").Interior.Color = QBColor(13) Case 30000 To 34999 Range("P4").Interior.Color = QBColor(12) End Select ・ ・ ・ (こを全地方分) End Sub 1.色の設定方法の改善と2.条件の設定方法の改善について: 現在それぞれの地方ごとにセルA1:B7に凡例を作成しています。 凡例はセルAにフォントの色指定で着色した■、 セルBに0以上5000未満などの条件を入力してあります。 例: A  B ■ 1以上5000未満 色は上記の通りマクロで直接指定していて、この■の色を変更してもマクロの色は変わりません。 これをリンクさせて、■の色が変更されたらマクロにも反映されるようにしたいと思っています。 条件についても同様で、Bの値が変わったらマクロの値も変わるように設定できたらいいのですが。。 3.現在のマクロの記述方法をシンプルにできないか、について: 見ての通り、今のマクロは同じ事を地方ごとに記述していて非常に長いものになっています。 これをもう少しシンプルに記述できないかと思っているのですが、 セルの範囲も地方によってさまざまなので上手いループが思いつかず行き詰まっています。 是非アイディアをいただけるとありがたいです。 どうぞよろしくお願いいたします。

  • Excel2007 VBAで行のセルカラー変更後の枠線

    VBAを使い行全体の色を変更しました。 Range(Cells(1, 1), Cells(1, 256)).Interior.Color = RGB(210, 210, 255) この方法だと完全に塗り潰されるのですが枠線を残すことはできないでしょうか? 宜しくお願いします

専門家に質問してみよう