PowerPoint VBA ThemaColorの色をRGB分解する


#ThemaColorはまず基本のOfficeから
たとえばこのColorFormatは
Dim a As Office.ColorFormat
と書ける。PowerPointでもデフォルトで参照設定がついているため、修飾が可能である。

####ColorFormat
https://docs.microsoft.com/ja-jp/office/vba/api/powerpoint.colorformat
単色のオブジェクトの色、グラデーションまたはパターンで塗りつぶされたオブジェクトの前景色、背景色、またはポインターの色を表します。 色は、赤、緑、青の値で指定される色 (RGB プロパティを使用) または配色の色 (SchemeColor プロパティを使用) に設定できます。
[ColorFormat.RGB プロパティ (PowerPoint)](https://docs.microsoft.com/ja-jp/office/vba/api/powerpoint.colorformat.rgb)
RGBがタイトルから抜けている
指定された色の RGB 値を設定します。 値の取得と設定が可能です。
[SchemeColor プロパティ (PowerPoint)](https://docs.microsoft.com/ja-jp/office/vba/api/powerpoint.colorformat.schemecolor)
指定されたオブジェクトに適用する配色の色を設定します。 値の取得と設定が可能です。
[ObjectThemeColor プロパティ (PowerPoint)](https://docs.microsoft.com/ja-jp/office/vba/api/powerpoint.colorformat.objectthemecolor)
指定したColorFormatオブジェクトのテーマの色を設定または返します。 値の取得と設定が可能です。
[ColorFormat.Type プロパティ (PowerPoint)](https://docs.microsoft.com/ja-jp/office/vba/api/powerpoint.colorformat.type)
色の種類を表します。 読み取り専用です。

#PowerPoint
Excel,Wordと比較すると 
<UL>
<li>ExtracolorsというExcel,Wordにはない独自のオブジェクトがある
<li>Theme=>ThemeVariants=>ThemeVariantというExcel,Wordにはなく、かつ独特の優先順位を持つオブジェクトがある。
</UL>

####[ExtraColors オブジェクト (PowerPoint)]()
‎
プレゼンテーションの追加の色を表します。 このオブジェクトには、最大 8 色を含めることができ、各色は、RGB 値で表されます。
#####例
ExtraColorsオブジェクトを取得するのには、 ExtraColorsプロパティを使用します。 ExtraColors (インデックス) に追加色のインデックス番号を使用して、1 つの余分な色の赤、緑、青 (RGB) 値を返します。 次の例では、作業中のプレゼンテーションのスライド 1 に四角形を追加し、追加色を背景色の塗りつぶしを設定します。 プレゼンテーションに対して定義されている少なくとも 1 つの余分な色をされていない、次の使用例は失敗します。

```vb
With ActivePresentation
Set rect = .Slides(1).Shapes _
.AddShape(msoShapeRectangle, 50, 50, 100, 200)
rect.Fill.ForeColor.RGB = .ExtraColors(1)
End With
```

追加色を追加するのにには、 Addメソッドを使用します。 (色がまだ追加されている) 場合、次の使用例は作業中のプレゼンテーションに追加色を追加します。
ActivePresentation.ExtraColors.Add RGB(69, 32, 155)

####ColorShemes
指定したプレゼンテーションのすべてのColorSchemeオブジェクトのコレクションです。 各 ColorScheme オブジェクトは、スライドで一緒に使用される色の集合である配色を表します。
#####例
colorschemes 設定コレクションを取得するのには、colorschemesプロパティを使用します。 単一の ColorScheme オブジェクトを取得するには、 ColorSchemes (index) を使用し、引数 index には、配色のインデックス番号を指定します。



```vb
ActivePresentation.ColorSchemes(2).Delete
```

####ColorShceme
https://docs.microsoft.com/ja-jp/office/vba/api/powerpoint.colorscheme
タイトルや背景など、スライド、ノート、または配布資料の異なる要素に使用する 8 色の色から構成される配色を表します。 プレゼンテーションのスライド、ノート、配布資料の配色は個別に設定できます。
####注釈
各色は、 RGBColor オブジェクトで表されます。 ColorScheme オブジェクトは、 ColorSchemes コレクションのメンバーです。 ColorSchemes コレクションには、プレゼンテーションのすべての配色が含まれています。
#####例
1つのColorSchemeオブジェクトを取得するのには、 colorschemes (index) を使用します。引数 index には、配色インデックス番号を指定します。
スライド、 SlideRange、またはmasterオブジェクトのColorSchemeプロパティを設定して、1つのスライド、スライドのセット、またはマスターシェイプの配色をそれぞれ取得します。
単一のスライド要素の種類の色を表すRGBColorオブジェクトを取得するには、 Colorsメソッドを使用します。 RGBColorオブジェクトを別のRGBColorオブジェクトに設定することも、 rgbプロパティを使用して、 RGBColorオブジェクトの明示的な赤、緑、青 (rgb) の値を設定または取得することもできます。

##PowerPointのTheme、ThemeVariants優先順位
Theme=>ThemeVariants=>ThemeVariant
Theme オブジェクト (PowerPoint)
https://docs.microsoft.com/ja-jp/office/vba/api/powerpoint.theme
テーマ (色、フォント、および効果のコレクション) を表します。

ThemeVariant オブジェクト (PowerPoint)
https://docs.microsoft.com/ja-jp/office/vba/api/powerpoint.themevariant
テーマのバリエーション (一連の色とフォント) を表します。


##PowerPointのテーマファイルはthmx形式

thmx
#Office.ThemeColor
https://docs.microsoft.com/ja-jp/office/vba/api/office.themecolorscheme.save
Office テーマの配色をxml形式ファイルに保存します
ThemeColorScheme.Save("C:\myThemeColorScheme.xml")
保存したものは読み込むことができる
https://docs.microsoft.com/ja-jp/office/vba/api/office.themecolorscheme.load
ThemeColorScheme.Load ("C:\myThemeColorScheme.xml")
GetCustomColor メソッド (Office)

Microsoft Office テーマの配色内に含まれるユーザー設定の 1 色を表す値を取得します。
csCustomColor = tcsThemeColorScheme.GetCustomColor("CheerfulColor")

ThemeColorScheme メソッド (Office)
https://docs.microsoft.com/ja-jp/office/vba/api/office.themecolorscheme.colors
‎2019‎年‎01‎月‎25‎日
Microsoft Office テーマの配色内の 1 色を表すオブジェクトを取得します。

PpColorSchemeIndex 列挙
https://docs.microsoft.com/ja-jp/office/vba/api/powerpoint.ppcolorschemeindex
Specifies the color in the applied color scheme that is associated with the specified object.
指定されたオブジェクトに適用する配色の色を指定します。


| Name|Value|Description |
|:----------:|:----------------:|:-------------------:|:--------------------|
|ppAccent1|6|Accent1||
|ppAccent2|7|Accent2||
|ppAccent3|8|Accent3||
|ppBackground|1|Background||
|ppFill|5|Fill||
|ppForeground|2|Foreground||
|ppNotSchemeColor|0|Not scheme color |配色パターンなし|
|ppSchemeColorMixed|-2|Mixed scheme color |配色パターンは混在|
|ppShadow|3|Shadow||
|ppTitle|4|Title|タイトル|

https://support.office.com/ja-jp/article/powerpoint-ミスを防ぐために色の組み合わせ-555e1689-85a7-4b2e-aa89-db5270528852

PowerPointのスライドの配色を変更しやすくするアドイン
http://artfulplace.hatenablog.com/entry/2015/03/11/203913

####ThemeColorの発想はColorRefにあるという説

CORLORREF
https://docs.microsoft.com/ja-jp/windows/desktop/gdi/colorref
####もちろんPowerPointはデザインも問われる
PowerPoint / スライドをデザインする / 背景とテーマ / Powerpoint: ミスを防ぐために色の組み合わせ