色を3色に分けて取得するユーザー定義関数マクロ講座 動画編 53回

色を3色に分けて取得するユーザー定義関数

テーマカラーの取得と色を3色に分けて取得するユーザー定義関数マクロ講座 動画編 53回
マクロ講座

動画でExcel タイトル

テーマカラーの取得と色を3色に分けて取得するユーザー定義関数

動画版「マクロ講座」です。
今回はテーマカラーの取得について説明します。
背景色のテーマカラーは、Rangeオブジェクトのインテリア テーマカラーはユーザーがどのテーマカラーを選択しているかという設定により表示される色が違ってきます。 ここではユーザーが
ページレイアウト タブのテーマカラーの【オフィス2013から2022のテーマ】を選択しているものとして、その中の色を選択する 例を表示しています。
テーマカラーを取得するには オブジェクトの interior プロパティ から theme COLOR プロパティ を取得します。
また色を設定するのに、RGB(255,0,0)のような設定がカンタンにできるように色を3色に分けて取得するユーザー定義関数も紹介します。

テーマカラーの取得と色を3色に分けて取得するマクロ

XlThemeColor(テーマカラーの定数)

名前 説明
xlThemeColorAccent1 5 Accent1
xlThemeColorAccent2 6 Accent2
xlThemeColorAccent3 7 Accent3
xlThemeColorAccent4 8 Accent4
xlThemeColorAccent5 9 Accent5
xlThemeColorAccent6 10 Accent6
xlThemeColorDark1 1-d Dark1
xlThemeColorDark2 2-d Dark2
xlThemeColorFollowedHyperlink 12 表示済みのハイパーリンク
xlThemeColorHyperlink 11 ハイパーリンク
xlThemeColorLight1 1 Light1
xlThemeColorLight2 2 Light2

動画で紹介したコード

テーマカラーをその番号を利用して 選択範囲の色を変更します。

Sub Samp53a色指定()
    Selection.Interior.ThemeColor = 2
    Selection.Interior.TintAndShade = 0.4
End Sub

テーマカラーを定数で指定するコード

Sub Samp51a()
    Selection.Interior.ThemeColor = xlThemeColorAccent1
    Selection.Interior.TintAndShade = 0.4
End Sub

テーマカラーを変数を使って範囲に設定していくコード

Sub Samp53c()
    Dim i As Long
    For i = 1 To 10
        Selection.Offset(0, i - 1).Interior.ThemeColor = i
        Selection.Offset(0, i - 1).Interior.TintAndShade = 0.4
    Next i
End Sub

選択範囲に、テーマカラーを変えながら、TintAndShadeも変更してグラデーションを表示するコード

Sub Samp53f()
    Dim i As Long, j As Long
    For i = 0 To 5
        Selection.Offset(i, 0).Interior.ThemeColor = i + 5
        For j = 1 To 10
            With Selection.Offset(i, j).Interior
                .ThemeColor = i + 5
                .TintAndShade = j / 10
            End With
        Next j
    Next i
End Sub