【ExcelVBA】セルの色情報(RGB)を取得する関数


この記事はプロモーションを含みます。

ExcelVBA

関数を入力したセルに設定されている背景色の色情報(RGB値)を取得する関数です。

機能説明

概要にも記載していますが、本関数の機能について説明します。

本関数名は「GetColorInfo」となります。
セルに引数無しで「GetColorInfo()」と入力することで、セルに設定されている背景色をRGB形式で表示します。

ちなみにこの関数を作成した背景ですが、ある資料を修正する際、基本的な色以外の色を使用しており、その色を使うために毎回パレットを使用して確認していました。
それが、面倒だったので、関数で確認出来るようにしたかったので作成しました。

使用方法

ここでは、実際に使い方を見てみたいと思います。

画像のように、セルに背景色を設定し、関数「GetColorInfo()」を入力してみます。
RGB値が「R,G,B」の形式で表示されています。

RGB値が正しいか、パレットで確認してみます。
ここでは、オレンジ色を例としています。

オレンジ色セルの関数の結果は「255,192,0」となっています。
パレットでは、赤「255」、緑「192」、青「0」となっており、関数の結果が正しいことが確認出来ました。

ソースコード

本関数のソースコードです。
このソースコードを標準モジュールに記述することで、この関数を使用することが出来ます。

Option Explicit

' セルの色情報取得
Public Function GetColorInfo() As String
    ' セルのアドレス取得
    Dim address As String
    address = Application.ThisCell.address
    
    ' 色情報取得
    Dim color As Long
    color = Range(address).Interior.color

    ' R値取得
    Dim r As Integer
    r = color Mod 256
    
    ' G値取得
    Dim g As Integer
    g = Int(color / 256) Mod 256
    
    ' B値取得
    Dim b As Integer
    b = Int(color / 256 / 256)

    GetColorInfo = r & "," & g & "," & b
End Function

コメント

タイトルとURLをコピーしました