Home » エクセルマクロ・Excel VBAの使い方 » Shapesコレクション・Shapeオブジェクト » ColorFormat.SchemeColorの一覧を作成するExcelマクロ

ColorFormat.SchemeColorの一覧を作成するExcelマクロ

動作検証バージョン:64bit Windows 10 Pro + 32bit Excel(バージョン2108 ビルド14326.20348 Microsoft Store)

ColorFormat.SchemeColorプロパティに指定できる値とRGB値を一覧にしていますが、サンプルをマクロで作成したいという要望もありそうです。

[スポンサードリンク]

ColorFormat.SchemeColorの一覧を作成するマクロ

以下のSubプロシージャを実行すると、アクティブブックの先頭に新規ワークシートが挿入され、色見本、SchemeColor値、24ビットカラー値、R・B・Gそれぞれの値が出力されます。

Sub 新規シートにSchemeColorの一覧を作成する()
 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

  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
 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マクロ

「Shapesコレクション・Shapeオブジェクト」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.