ColorFormat.SchemeColorプロパティに指定できる値とRGB値を一覧にしていますが、サンプルをマクロで作成したいという要望もありそうです。
ColorFormat.SchemeColorの一覧を作成するマクロ
以下のSubプロシージャを実行すると、アクティブブックの先頭に新規ワークシートが挿入され、色見本、SchemeColor値、24ビットカラー値、R・B・Gそれぞれの値が出力されます。
Sheets.Add Before:=Sheets(1)
Range("B1").Value = "SchemeColor"
Range("C1").Value = "RGB"
Range("D1").Value = "R"
Range("E1").Value = "G"
Range("F1").Value = "B"
Range("B1:F1").HorizontalAlignment = xlCenter
Range("B1:F1").Font.Bold = True
Dim i As Long
For i = 1 To 80
Dim rng As Range
Set rng = Cells(i + 1, "A")
Dim shp As Shape
Set shp = ActiveSheet.Shapes.AddShape( _
Type:=msoShapeRoundedRectangle, _
Left:=0, _
Top:=rng.Top, _
Width:=rng.Width, _
Height:=rng.Height)
shp.Fill.ForeColor.SchemeColor = i
rng.Offset(0, 1).Value = i
rgb_ = shp.Fill.ForeColor.RGB
rng.Offset(0, 2).Value = rgb_
rng.Offset(0, 3).Value = rgb_ \ 256 ^ 0 Mod 256
rng.Offset(0, 4).Value = rgb_ \ 256 ^ 1 Mod 256
rng.Offset(0, 5).Value = rgb_ \ 256 ^ 2 Mod 256
Next
End Sub
マクロで行っている処理について
シートの挿入と見出しの作成
最初に行っているのは、新規ワークシートの挿入と、B1:F1セルへの見出し項目の出力です。
Sheets.Add Before:=Sheets(1) Range("B1").Value = "SchemeColor" Range("C1").Value = "RGB" Range("D1").Value = "R" Range("E1").Value = "G" Range("F1").Value = "B" Range("B1:F1").HorizontalAlignment = xlCenter Range("B1:F1").Font.Bold = True
For~Nextループの開始
ColorFormatオブジェクトのSchemeColorプロパティには、1から80までの整数を指定できるので、「For i = 1 To 80」でFor~Nextループを開始します。
Dim i As Long For i = 1 To 80
色見本の作成
For~Nextループに入ったら、色見本作成等のために、A列のセルをRange型のオブジェクト変数rngに代入しておきます。
Dim rng As Range Set rng = Cells(i + 1, "A")
この変数rngを使って、A列のセルにピッタリ収まるような角丸四角形を挿入して、
Dim shp As Shape Set shp = ActiveSheet.Shapes.AddShape( _ Type:=msoShapeRoundedRectangle, _ Left:=0, _ Top:=rng.Top, _ Width:=rng.Width, _ Height:=rng.Height)
挿入した角丸四角形の塗りつぶし色をSchemeColorプロパティで設定し、B列にその値を入力します。
shp.Fill.ForeColor.SchemeColor = i rng.Offset(0, 1).Value = i
RGB値の入力
最後に24ビットカラー値をC列に、R・G・Bの値をD:F列に入力しています。
Dim rgb_ As Long rgb_ = shp.Fill.ForeColor.RGB rng.Offset(0, 2).Value = rgb_ rng.Offset(0, 3).Value = rgb_ \ 256 ^ 0 Mod 256 rng.Offset(0, 4).Value = rgb_ \ 256 ^ 1 Mod 256 rng.Offset(0, 5).Value = rgb_ \ 256 ^ 2 Mod 256
24ビットカラー値からR・G・B値を取得するロジックは、既にご紹介しているものと同じです。
最終更新日時:2021-10-14 06:47
Home » エクセルマクロ・Excel VBAの使い方 » Shapesコレクション・Shapeオブジェクト » ColorFormat.SchemeColorの一覧を作成するExcelマクロ