Microsoft Access 掲示板

帳票フォーム上 ラベルの背景色を変えて表示したい / 6

6 コメント
views
4 フォロー
6
hiroton 2021/01/13 (水) 10:31:20 修正 6cdb2@f966d

修正版

コントロールソース|='<font style="BACKGROUND-COLOR:#' & Right("00" & Hex([カラーコード]),2) & Mid(Hex([カラーコード]+16777216),4,2) & Mid(Hex([カラーコード]+16777216),2,2) & '">     </font>'

RGB並び順を修正
HTMLのカラーコード指定は6桁(3桁でもいいけど)必要なので10進数→16進数変換で特定の場合に上位桁がなくなってしまうのを修正
divタグは不要っぽかったので削除


RGBは確かに逆順にしないとダメでした。いい感じの技術資料が見つけられなかったんですが、実装次第で異なる場合もあるようですRGBのHex並びが逆(AddinBox/VBAユーザーの為のOpenOffice.org 備忘録さん)
これはもう、VBAではそう、としか言いようがなさそうです

カラーコード表記は例えば「#FF0000」で、最初の#を除いて先頭2文字が1つ目のグループで「R」の量を表す、3~4文字目が・・・
となっていて、「桁」自体は存在しません。これを数値にする場合、「桁」を与える必要があります

数値で同様のことを考えると、1つ目のグループは一の位で2つ目のグループは十の位で・・・と考えることができます。そして、これを文字であらわすときは一番大きいグループから表記します。

一の位が3
十の位が2
百の位が1
ならば3×1+2×10+1×100 → 123

これをRGBに当てはめ、
1つ目のグループ(R)がFF
2つ目のグループ(G)が00
3つ目のグループ(B)が00
ならば、FF×1+00×256+00×256×256 → &H0000FF

このように考えると
カラーコード表示のRGB(255,0,0)→#FF0000
16進数表示のRGB(255,0,0)→&H0000FF

のように、文字の並び順だけ見れば逆になるという表現方法も間違いとは言えないことがわかると思います

通報 ...