2024年8月3日土曜日

Excelで見やすい表を作るには、センスではなくて手順になるルールがあって、背景色もその一つ ー RGBカラー番号(VBAマクロ)

         
以前、海外向け製品の受注情報で、ワークシートの背景色で依頼を受けました。
各注文は、色々な製品の組合わせで発注されましたが、番号で識別できました。

先ず親となる注文番号が存在して、個々の製品別には枝番号が付けられました。
工場では、受注システムが番号を割り振りましたが、閲覧は端末画面からです。

それでも、出荷の終えていない注文全体を、ワークシートで把握したくなるな。
データは、CSVファイルで抽出しましたが、見やすくしたいリクエストが発生。

つまり、親の注文番号でセル範囲を背景色で括って、別の親番では違う背景色。
こうして、背景色を付けておけば、見間違えることもないというアイデアです。

ところで、濃い背景色にすると、文字が読みづらくなってしまうのは事実だな。
どちらかというと、薄い中間色でセル背景を色付けすると、見やすくなります。

背景色の指定も、”セルの書式設定”からできますので、特に問題はありません。
ただ、自分なりに背景色をもう少し薄くしてみたいとか、欲求は出て来るもの。

まあ、エクセルの書式設定で自分なりに色が作れますが、問題はここからです。
作成したオリジナルな色のデータを、記録しておいて使い回しをしてみたいな。

  Sub アクティブセルの背景色をRGBで取得()
  Dim R As Long, G As Long, B As Long, CLR As Long
    CLR = ActiveCell.Interior.Color
      R = CLR Mod 256  '256で割った余りを取得
      G = Int(CLR / 256) Mod 256   '256で割った整数から256で割った余り
      B = Int(CLR / 256 / 256)         '256で2回割った整数商を取得
    ActiveCell.Offset(1, 0) = "RGB(" & R & "," & G & "," & B & ")"
    '背景色のあるセルの下のセルにRGB値を出力
  End Sub

  Sub アクティブセルのRGB値指定()
    ActiveCell.Interior.Color = RGB(255, 230, 153) 'RGB値の指定
  End Sub

作った背景色は、セルに描き込んでから、VBAエディターを”Alt+F11”で起動。
次のコードを書き込んで実行すると、背景色のセル下にRGBコードが現れます。

後は、マクロでセル色のコードを指定すれば、ワークシートに表示されますな。
というわけで、色分けした受注情報なら、内容のみ間違えも防止できるわけだ。

こういったVBAのテクニックは、ワークシート上の読み間違えを防ぐと言う意味での可読性を高める技術なのですが、はるか昔のWindows黎明期では、描画速度の実用性から256色しか使えなかった時代を懐かしんでは、隔世の感ありと思うのでした。



いいねと思ったら、三つポチっとね!
にほんブログ村 スキースノボーブログへにほんブログ村 スキースノボーブログ スキーへにほんブログ村 旅行ブログ 旅日記・旅の思い出へ
にほんブログ村    にほんブログ村      にほんブログ村 



0 件のコメント:

コメントを投稿