【PowerPoint】色のついた四角形を並べる

# やること
　パワーポイントで、色のついた四角形を並べたものを過去に作成したため、メモしておく。


# 事前確認：Qiitaでの記事
　以下の検索をしたところ、70件ヒットした。(2025/05/04時点)
　　[「tag:VBA tag:PowerPoint」の検索結果 - Qiita](https://qiita.com/search?sort=&q=tag%3AVBA+tag%3APowerPoint)


## 図形、描画
[PowerPointに関数のグラフを描く #VBA - Qiita](https://qiita.com/ikuzak/items/99629f7c6a507eb0bff8)
最終更新日 2025年02月24日　投稿日 2024年10月17日

[Powerpointのフリーフォーム（多角形）を直線に変換したい #VBA - Qiita](https://qiita.com/Daisuke_MMM/items/676f0e7f8ba52b71ed92)
最終更新日 2022年10月05日　投稿日 2022年10月05日

[【PowerPointVBA】選択中shpの中身を同名shpに展開する #VBA - Qiita](https://qiita.com/taleau/items/318a786ce59c239bed73)
最終更新日 2022年03月11日　投稿日 2022年03月11日

[【PowerPoint】指定名Shapeの表示/非表示を切り替えて擬似的にスライドに余白設定する【VBA】 #VBA - Qiita](https://qiita.com/taleau/items/71839bc240eb0d7052af)
最終更新日 2022年02月25日　投稿日 2022年02月25日

[PowerPoint VBA 図形の名前の設定/取得、指定名の図形を狙って読み書き #VBA - Qiita](https://qiita.com/taleau/items/47bf0c60a7ea593b74c5)
投稿日 2021年10月29日

[PowerPointでカラーコードに合わせて図形を塗りつぶす #VBA - Qiita](https://qiita.com/Zucchini_eggpla/items/5419d3dbb3b22410faf7)
投稿日 2021年03月17日

[表から数値を読み取って水位レベルを描画したい #VBA - Qiita](https://qiita.com/135/items/ca8a6e82975a57aa1a98)
最終更新日 2020年11月09日　投稿日 2020年11月09日

[矢印コネクタと仲良くなるための PowerPoint マクロ #VBA - Qiita](https://qiita.com/7akase/items/3d4b2dadce3387671d94)
投稿日 2020年09月13日

[【PowerPoint VBA】まともな『オブジェクトの整列』（左揃え等）コマンドを作成する #VBA - Qiita](https://qiita.com/nkay/items/a617ce611ee4316812f2)
投稿日 2020年06月16日

[グループ化されたオートシェイプに対して、グループ解除せずに処理を行う #Excel - Qiita](https://qiita.com/Umaremin/items/b7726fa7340c7f175e77)
最終更新日 2020年05月17日　投稿日 2020年05月17日

[PowerPointの図形の位置や大きさを揃えるVBScript #VBA - Qiita](https://qiita.com/jinoji/items/94ae11cfe6cea6082806)
最終更新日 2019年03月22日　投稿日 2019年03月22日

[PowerPointで円を弾ませてみる #VBA - Qiita](https://qiita.com/nukie_53/items/f9273223004898b8c166)
最終更新日 2017年01月15日　投稿日 2017年01月15日

[VBAのシェイプ形状、MSOAutoShapeTypeの画像一覧 #Excel - Qiita](https://qiita.com/mrpepper/items/86b38953ecb6a80805ea)
最終更新日 2016年05月24日　投稿日 2016年05月24日

[全シェイプをコレクションに格納する #VBA - Qiita](https://qiita.com/Umaremin/items/549f64e5f9d780b834b3)
投稿日 2015年06月07日

[選択した図形を動かないように固定するPowerPointマクロ #VBA - Qiita](https://qiita.com/Umaremin/items/667f6d8f3c29aa957ca5)
最終更新日 2015年05月30日　投稿日 2015年05月30日


## テキスト
[パワーポイントのVBAでコメントを取得する #PowerPoint - Qiita](https://qiita.com/msms/items/058ad96d6c83dcf917b6)
投稿日 2025年04月14日

[PowerPoint VBA 複数の置換条件でプレゼンテーションの文字列を一括置換する #VBAマクロ - Qiita](https://qiita.com/rie1234k/items/d871d87b9d3894242978)
投稿日 2024年11月28日

[游ゴシック Mediumの疑似ボールド体を游ゴシック BoldにするVBA #PowerPoint - Qiita](https://qiita.com/ry_Tom/items/2bdd5d2a6f9412f6eeaa)
投稿日 2022年05月13日

[PowerPointのFontをすべて変更するVBA (グループ化されていても!) #VBA - Qiita](https://qiita.com/Umaremin/items/7270a65b72debb17bba2)
投稿日 2020年05月18日

[パワポマクロ　クリップボードの文字列を取得(参照設定しない) #VBA - Qiita](https://qiita.com/kidxcv/items/780cccda3d4d57f388ae)
投稿日 2019年05月25日

[[PowerPoint VBA]コンマを全消しするマクロ(Replaceの使用例) #TextRange.Replace - Qiita](https://qiita.com/Q11Q/items/a0cbd36d957cb0a3ba93)
投稿日 2017年12月06日

[PowerPoint内のテキストを取得する #VBA - Qiita](https://qiita.com/Umaremin/items/8832e78af944fb5c30d8)
最終更新日 2015年05月24日　投稿日 2015年05月24日

[選択範囲内で置換するPowerPointマクロ #VBA - Qiita](https://qiita.com/Umaremin/items/cece14b5cdb5eb7a2eab)
最終更新日 2015年05月24日　投稿日 2015年05月24日

[選択範囲内から検索するPowerPointマクロ #VBA - Qiita](https://qiita.com/Umaremin/items/dcf4434df038ce3ddd31)
最終更新日 2015年05月24日　投稿日 2015年05月24日


## 表
[表の各行の高さをそろえる【PowerPointVBA】 #VBA - Qiita](https://qiita.com/taleau/items/81dac29ded653221edbd)
投稿日 2022年07月26日

[PowerPoint 表の操作　セルの結合と分割で遊ぶ #VBA - Qiita](https://qiita.com/taleau/items/ba75bb6777f8718d6b36)
投稿日 2021年10月29日


## 音声
[ノート読み上げを録音した音声の複数スライド組み込みをPowerPointVBAで自動化してみた #業務自動化 - Qiita](https://qiita.com/mamineko/items/24ea02ec7f89801624db)
最終更新日 2024年03月09日　投稿日 2023年12月12日

[PowerPoint のノートを音声読み上げしてスライドに埋め込む #VBA - Qiita](https://qiita.com/aadiimmz/items/3d58e8a6514de82de4ec)
最終更新日 2020年05月07日　投稿日 2020年05月07日

[PowerPointで茜ちゃんに喋ってもらう #VBA - Qiita](https://qiita.com/mima_ita/items/e5b982796fd4c14553a6)
投稿日 2019年08月02日


## スタイル
[PowerPoint VBA ページ番号のスタイルを決める #VBA - Qiita](https://qiita.com/Q11Q/items/89852b43d561e48211f8)
投稿日 2023年02月28日

[Powerpoint VBA Powerpointで一気に参照設定を設定するマクロ Set Reference Settings Into PowerPoint Quickly. #refer - Qiita](https://qiita.com/Q11Q/items/9ad13a2ddae4a9eb9fac)
投稿日 2021年05月11日

[【PowerPoint】スライドをランダムで表示 #VBA - Qiita](https://qiita.com/risksrb/items/c959813f99d35c24abca)
最終更新日 2020年04月16日　投稿日 2019年12月04日

[【PowerPoint】スライドを指定した数ごとにランダムで表示する #VBA - Qiita](https://qiita.com/risksrb/items/628c84041a17686d0f0d)
最終更新日 2019年12月10日　投稿日 2019年12月10日

[パワポでズンドコキヨシ #VBA - Qiita](https://qiita.com/rryu/items/2b80784bd0b6336d9855)
最終更新日 2016年03月18日　投稿日 2016年03月17日

[スライドショー中にファイルにアクセスしてスライドショーの内容を変更する #VBA - Qiita](https://qiita.com/jhun_do/items/84769424aaeff44c3140)
最終更新日 2019年04月27日　投稿日 2019年04月27日

[PowerPointのスライドの右隅に総ページ数を挿入するVBScript #VBA - Qiita](https://qiita.com/jinoji/items/82de820214a4d5dcbf77)
最終更新日 2019年03月22日　投稿日 2019年03月22日

[スライド表示とマスター表示を切り替えるPowerPointマクロ #VBA - Qiita](https://qiita.com/Umaremin/items/66e936182e60165a9671)
最終更新日 2015年05月25日　投稿日 2015年05月25日


## アドイン
[PowerPointアドインを作る手順の概要 #VBA - Qiita](https://qiita.com/nkay/items/411ab09a0975aa48a449)
最終更新日 2024年06月18日　投稿日 2024年06月18日

[PowerPoint用のアドインの紹介 #VBA - Qiita](https://qiita.com/11ohina017/items/36786ae5f55dfded8566)
最終更新日 2020年02月02日　投稿日 2020年02月02日

[Azureアイコンセットを挿入するPowerPointアドインの紹介 #VBA - Qiita](https://qiita.com/11ohina017/items/9545bcdadb750baec637)
最終更新日 2020年04月18日　投稿日 2020年04月18日

[AWSアイコンセットを挿入するPowerPointアドインの紹介 #VBA - Qiita](https://qiita.com/11ohina017/items/c3b8f32f836d6a9cbf04)
投稿日 2020年05月08日


## 入出力
[【PowerPoint】pdfとして保存する【VBA】 #VBA - Qiita](https://qiita.com/taleau/items/c51804017995eb7a5c46)
最終更新日 2022年02月25日　投稿日 2022年02月25日

[大量のPowerPointファイルをPNG画像に変換するときに使ったVBScript #VBA - Qiita](https://qiita.com/oyahiroki/items/c433abf038ec5cd843ef)
最終更新日 2021年10月25日　投稿日 2021年10月25日

[PowerPointのスライドを画像ファイルとしてExportするVBScript #VBA - Qiita](https://qiita.com/jinoji/items/f24575bf5bdd11c854e7)
投稿日 2019年03月22日

[PowerPointのVBAからスライドに埋め込んだOLEオブジェクトをファイルとして利用する #Excel - Qiita](https://qiita.com/amidoazuki/items/5df8762e0e3087b2170a)
投稿日 2020年08月23日

[Excelのセルの内容でPPTのスライドを大量生成する #VBA - Qiita](https://qiita.com/Daisuke_MMM/items/4e1ca9a51792fcb92a0c)
投稿日 2021年03月02日

[[ VBA ] Excel の各セルの値を各スライドのタイトルにした PowerPoint の自動生成 #Windows - Qiita](https://qiita.com/yuusuke510/items/beec09fd10e18817d89e)
投稿日 2019年08月15日

[PowerPoint VBA で 動画ファイルを作るときの注意 #VBA - Qiita](https://qiita.com/takebayashi0612/items/9d179ada3d531c137716)
最終更新日 2019年11月13日　投稿日 2019年11月12日

[VBA Powerpointの参照設定をイミディエイトに出力する Wordはファイルに出力する Powerpoint And WinWord Export Reference Settings #PowerPoint - Qiita](https://qiita.com/Q11Q/items/5c98e74a2c9122b485ca)
投稿日 2019年02月27日

[VBAを用いて複数のパワーポイントから対象の表の内容をエクセルに抽出する #Excel - Qiita](https://qiita.com/tako_and_kitune/items/c953c5624e60cb09c446)
最終更新日 2018年11月25日　投稿日 2018年11月25日


## その他
### VBA
[PowerPoint VBA リファレンス 項目リスト #reference - Qiita](https://qiita.com/Q11Q/items/a0bdd793e3fa6de0aef1)
投稿日 2018年10月20日

[再背面にペーストするPowerPointマクロ #VBA - Qiita](https://qiita.com/Umaremin/items/56f5f143491bed970c05)
最終更新日 2015年05月30日　投稿日 2015年05月30日

[PowerPointのViewTypeを取得 #VBA - Qiita](https://qiita.com/Umaremin/items/ec8d823c817c59585884)
最終更新日 2015年05月30日　投稿日 2015年05月25日

[PowerPointで"Workbook_Open"相当のことをするには #VBA - Qiita](https://qiita.com/nukie_53/items/c95eeb2f2e28c9a5ad9a)
最終更新日 2017年01月04日　投稿日 2017年01月04日

[パワポマクロ ActiveSlide関数を作成 #VBA - Qiita](https://qiita.com/kidxcv/items/822ffe38dd6f52b17343)
投稿日 2019年05月25日

[PowerPointで横スクロールさせるマクロ #VBA - Qiita](https://qiita.com/Umaremin/items/065f202fe23558ed3837)
投稿日 2015年06月22日

[MS Officeの形状の中のテキストの取得方法の確認（TextRangeオブジェクト） #Excel - Qiita](https://qiita.com/nukie_53/items/5015cf91319635544e63)
最終更新日 2018年09月21日　投稿日 2017年01月08日

[Excel Word PowerPoint VBA 56色カラーパレットの色をRGB分解してリスト化する #Publisher - Qiita](https://qiita.com/Q11Q/items/5e0dac2d8beb6af047f8)
最終更新日 2019年09月22日　投稿日 2019年05月19日

[PowerPoint VBA ThemaColorの色をRGB分解する #VBA - Qiita](https://qiita.com/Q11Q/items/59b2a12738ff2834f98a)
投稿日 2019年05月21日

### 連携
[Excel VBA を起点とした半自動化で利用した技術 #RPA - Qiita](https://qiita.com/shokun0803/items/fe550537c4444a3adaf2)
最終更新日 2023年11月01日　投稿日 2023年09月15日

[エクセルで簡単に論文用のグラフ作成（チャートエリアとプロットエリアの悩みからおさらば） #Excel - Qiita](https://qiita.com/takashi-programming/items/0ea53da21bd62f58d61a)
最終更新日 2020年05月07日　投稿日 2020年05月07日

[Word内の画像サイズを一括で変更してしまおう #VBA - Qiita](https://qiita.com/miyama_daily/items/016ce30147de6888d7ca)
投稿日 2024年10月05日

[Claude 3.5 Sonnetを使ってmermaidの図をパワポ・エクセルにVBA出力（オブジェクトで出力） #Excel - Qiita](https://qiita.com/kongo-jun/items/f891f048ac92ffaf8589)
最終更新日 2024年09月08日　投稿日 2024年08月29日

[【時短】助けてChatGPT ! 会議資料を作ってください ブルースマンデーをハッピーマンデーに変えて!! #Excel - Qiita](https://qiita.com/6PepWVdwKJ61291/items/200ee9a017b420124420)
最終更新日 2024年09月01日　投稿日 2024年08月26日

[VBA で Anthropic Claude 3 を使ってみよう #Excel - Qiita](https://qiita.com/bayashi987/items/a8a5f4992e1eb758f4c9)
投稿日 2024年04月22日

[PowerPoint VBA で Azure Architecture Icons Deck を生成する #Azure - Qiita](https://qiita.com/takuya0301/items/31e8968a8b0f619270a0)
投稿日 2021年08月06日

[ADOを使ってExcelテンプレートへ差し込み一斉出力するシステムを作ってみた #VBA - Qiita](https://qiita.com/unmebakka/items/bb9267c86c14dd8ab329)
最終更新日 2021年04月18日　投稿日 2021年04月18日

[PowerPointをメディア講義に対応させるメモ（PPT+CeVIO） #VBA - Qiita](https://qiita.com/d83yk/items/415886d63244e27d329a)
最終更新日 2020年04月15日　投稿日 2020年04月13日

[WinActorとVBAでパワポ資料を自動作成する #RPA - Qiita](https://qiita.com/kce119/items/bd694cbed3841eeb8a20)
最終更新日 2019年07月12日　投稿日 2019年07月12日

[powershell で Office を捕まえてターミナルとして操作する #Excel - Qiita](https://qiita.com/AWtnb/items/b0742a26c622b81248c6)
最終更新日 2019年10月05日　投稿日 2019年10月04日


# 実現方法
　以下を使用。

```vb:色四角.bas
Attribute VB_Name = "色四角"
Option Explicit
'   DocumentWindow object
'   Presentation object     プレゼンテーション
'   └Slide object          スライド
'     └Shape object        図形、Text box等
Sub 色四角を作成し配置()
    Dim sld_w As Single                     ' スライドの幅  (=ActiveWindow.Selection.SlideRange.Master.Width)
    Dim sld_h As Single                     ' スライドの高さ(=ActiveWindow.Selection.SlideRange.Master.Height)
' *** 図形を描くスライドの準備 ***
    Call set_slide                          ' 最後に白紙スライド追加
    ' スライドのサイズを取得
    With ActiveWindow.Selection
        sld_w = .SlideRange.Master.Width
        sld_h = .SlideRange.Master.Height
    End With
' *** 描画1：RGBグラデーション ***
    Call RGBW_32gradation(sld_w, sld_h)     ' R/G/B/Y/C/M/Wのグラデーション
' *** 図形を描くスライドの準備 ***
    Call set_slide                          ' 最後に白紙スライド追加
' *** 描画2：RGBグラデーション ***
    Call Hue_32gradation(sld_w, sld_h)      ' R/Y/G/C/B/M/Rのグラデーション
End Sub


Function set_slide()
'-------------------------------------------------------------------
' 関数: set_slide
' 説明: 現在のプレゼンテーションに白紙スライドを追加し、
'       最後のスライドへ移動します｡
' 引数:
'   なし
' 戻り値:
'   なし
'
' 使用例:
'       Call set_slide
'-------------------------------------------------------------------
'    ' ウィンドウの最大化
'    Application.ActiveWindow.WindowState = ppWindowMaximized
' Application.WindowState プロパティ (PowerPoint) | Microsoft Learn
' https://learn.microsoft.com/ja-jp/office/vba/api/powerpoint.application.windowstate
'        1 : ppWindowNormal
'        2 : ppWindowMinimized
'        3 : ppWindowMaximized
    ' 白紙スライドを末尾に挿入
    With ActivePresentation.Slides
        .Add _
            Index:=.Count + 1, _
            Layout:=ppLayoutBlank
    End With
    ' 最後のスライドに切り替える
    ActiveWindow.View.GotoSlide _
        Index:=ActivePresentation.Slides.Count
End Function


Function DrawSquare(ByVal shp_x As Single, ByVal shp_y As Single, _
                    ByVal shp_w As Single, ByVal shp_h As Single, _
                    ByVal R As Single, ByVal G As Single, ByVal B As Single)
'-------------------------------------------------------------------
' 関数: DrawSquare
' 説明: 指定した座標位置(shp_x, shp_y)とサイズ(shp_w, shp_h)に基づいて、
'       スライド上にRGB値(R, G, B)で塗りつぶされた四角形を描画
'       四角形は塗りつぶしの透明度および枠線の設定も同時に実施｡
' 引数:
'   shp_x      - 四角形の左上隅のX座標 (Single型)
'   shp_y      - 四角形の左上隅のY座標 (Single型)
'   shp_w      - 四角形の幅 (Single型)
'   shp_h      - 四角形の高さ (Single型)
'   R          - 塗りつぶし色の赤色成分 (Single型, 0～255)
'   G          - 塗りつぶし色の緑色成分 (Single型, 0～255)
'   B          - 塗りつぶし色の青色成分 (Single型, 0～255)
' 戻り値:
'   なし
'
' 使用例:
'   ' X=50, Y=50 の位置に幅200、高さ100 の青色系の四角形を描画
'   DrawSquare(50, 50, 200, 100, 0, 0, 255)
'-------------------------------------------------------------------
    Dim myDocument As Object
    Set myDocument = ActivePresentation.Slides(ActivePresentation.Slides.Count)
    With myDocument.Shapes.AddShape _
        (msoShapeRectangle, shp_x, shp_y, shp_w, shp_h)
            .Fill.ForeColor.RGB = RGB(R, G, B)      '塗りつぶしの色
            .Fill.Transparency = 0                  '塗りつぶしの透明度(0で不透明)
            .Line.Weight = 0                        '枠線の線幅(0で枠線なし)
            .Line.ForeColor.RGB = RGB(R, G, B)      '線の色
    End With
End Function


Function RGBW_32gradation(ByVal sld_w As Single, ByVal sld_h As Single)
'-------------------------------------------------------------------
' 関数: RGBW_32gradation
' 説明: 指定したスライドの幅(sld_w)と高さ(sld_h)に基づいて、
'       スライド上に7色×2行(計32階調/色)のグラデーションの
'       四角形を描画
'       7色は上からR/G/B/Y/C/M/W
' 引数:
'   sld_w      - スライドの幅 (Single型)
'   sld_h      - スライドの高さ (Single型)
' 戻り値:
'   なし
'
' 使用例:
'   ' 幅960、高さ540のスライドにグラデーションを描画する
'   Call RGBW_32gradation(960, 540)
'-------------------------------------------------------------------
    Dim shp_x As Single                 ' 四角形の左上隅のX座標
    Dim shp_y As Single                 ' 四角形の左上隅のY座標
    Dim shp_w As Single                 ' 四角形の幅
    Dim shp_h As Single                 ' 四角形の高さ
    Dim shp_r As Single                 ' 四角形の色(R)
    Dim shp_g As Single                 ' 四角形の色(G)
    Dim shp_b As Single                 ' 四角形の色(B)
    Dim R As Single, G As Single, B As Single
    Const Tone = 32                     ' 32階調
    Dim tone_s As Single
        tone_s = Round(256 / Tone, 0)   ' 1stepの減色量
    ' 四角のサイズを決定
    shp_w = sld_w / (Tone / 2)          ' 横方向：32階調 = 16階調×2行
    shp_h = sld_h / (7 * 2)             ' 縦方向：7色×2行
    ' 色の初期化(ベースは白)
    shp_r = 255
    shp_g = 255
    shp_b = 255
    ' 描画
    ' 各セルの位置に応じ、RGB各成分を横方向(shp_x)と縦方向(shp_y)で段階的に減少させ、
    ' 7種類の色パターンの四角形を描画。
    ' 1) 横方向: 左から右へ、1cellあたりtone_sずつ減算
    '    255から8ずつ減算(shp_x/shp_w：0～15→255～135)
    ' 2) 縦方向: 2段目はさらに減色量を加算して減算
    '    127(255-16×8)から8ずつ減算(127～7)
    For shp_y = 0 To shp_h * 2 - 1 Step shp_h   '縦(四角形の高さ×２)
        For shp_x = 0 To sld_w - 1 Step shp_w   '横(スライドの幅)
            R = shp_r - shp_x / shp_w * tone_s - (Tone / 2) * tone_s * shp_y / shp_h
            G = shp_g - shp_x / shp_w * tone_s - (Tone / 2) * tone_s * shp_y / shp_h
            B = shp_b - shp_x / shp_w * tone_s - (Tone / 2) * tone_s * shp_y / shp_h
            Call DrawSquare(shp_x, shp_y + 0 * shp_h, shp_w, shp_h, R, 0, 0)    ' R00 (R)
            Call DrawSquare(shp_x, shp_y + 2 * shp_h, shp_w, shp_h, 0, G, 0)    ' 0G0 (G)
            Call DrawSquare(shp_x, shp_y + 4 * shp_h, shp_w, shp_h, 0, 0, B)    ' 00B (B)
            Call DrawSquare(shp_x, shp_y + 6 * shp_h, shp_w, shp_h, R, G, 0)    ' RG0 (Y)
            Call DrawSquare(shp_x, shp_y + 8 * shp_h, shp_w, shp_h, 0, G, B)    ' 0GB (C)
            Call DrawSquare(shp_x, shp_y + 10 * shp_h, shp_w, shp_h, R, 0, B)   ' R0B (M)
            Call DrawSquare(shp_x, shp_y + 12 * shp_h, shp_w, shp_h, R, G, B)   ' RGB (W)
       Next
    Next
End Function


Function Hue_32gradation(ByVal sld_w As Single, ByVal sld_h As Single)
'-------------------------------------------------------------------
' 関数: Hue_32gradation
' 説明: 指定したスライドの幅(sld_w)と高さ(sld_h)に基づいて、
'       スライド上に色相を変化させたグラデーションの四角形を描画。
'       下記のRGB値の増減法を用いて、6種類の色相パターンを2行に
'       配し、計12段階の色変化を表現。
'       ・各色相パターン
'         000-060:  赤固定 (255)、青固定 (0)、緑が増加 (0～255)
'         060-120:  緑固定 (255)、青固定 (0)、赤が減少 (255～0)
'         120-180:  緑固定 (255)、赤固定 (0)、青が増加 (0～255)
'         180-240:  青固定 (255)、赤固定 (0)、緑が減少 (255～0)
'         240-300:  青固定 (255)、緑固定 (0)、赤が増加 (0～255)
'         300-360:  赤固定 (255)、緑固定 (0)、青が減少 (255～0)
' 引数:
'   sld_w      - スライドの幅 (Single型)
'   sld_h      - スライドの高さ (Single型)
' 戻り値:
'   なし
'
' 使用例:
'   ' 幅960、高さ540のスライドにグラデーションを描画する
'   Call Hue_32gradation(960, 540)
'-------------------------------------------------------------------
    Dim shp_x As Single                 ' 四角形の左上隅のX座標
    Dim shp_y As Single                 ' 四角形の左上隅のY座標
    Dim shp_w As Single                 ' 四角形の幅
    Dim shp_h As Single                 ' 四角形の高さ
    Dim shp_r As Single                 ' 四角形の色(R)
    Dim shp_g As Single                 ' 四角形の色(G)
    Dim shp_b As Single                 ' 四角形の色(B)
    Dim R As Single, G As Single, B As Single
    Const Tone = 32                     ' 32階調
    Dim tone_s As Single
        tone_s = Round(256 / Tone, 0)   ' 1stepの減色量
    ' 四角のサイズを決定
    shp_w = sld_w / (Tone / 2)          ' 横方向：32階調 = 16階調×2行
    shp_h = sld_h / (6 * 2)             ' 縦方向：6色×2行
    ' 色の初期化(ベースは白)
    shp_r = 255
    shp_g = 255
    shp_b = 255
    ' 描画
    ' 各セルの位置に応じ、RGB各成分を横方向(shp_x)と縦方向(shp_y)で段階的に減少させ、
    ' 色パターンの四角形を描画。
    ' 1) 横方向: 左から右へ、1cellあたりtone_sずつ減算
    '    255から8ずつ減算(shp_x/shp_w：0～15→255～135)
    ' 2) 縦方向: 2段目はさらに減色量を加算して減算
    '    127(255-16×8)から8ずつ減算(127～7)
    ' -------------------------------------------
    ' 色の計算例
    '       R = shp_r - shp_x / shp_w * 8 - 16 * 8 * shp_y / shp_h
    '       G = shp_g - shp_x / shp_w * 8 - 16 * 8 * shp_y / shp_h
    '       B = shp_b - shp_x / shp_w * 8 - 16 * 8 * shp_y / shp_h
    ' -------------------------------------------
    For shp_y = 0 To shp_h * 2 - 1 Step shp_h   '縦(四角形の高さ×２)
        For shp_x = 0 To sld_w - 1 Step shp_w   '横(スライドの幅)
            G = shp_x / shp_w * tone_s + (Tone / 2) * tone_s * shp_y / shp_h
                Call DrawSquare(shp_x, shp_y + 0 * shp_h, shp_w, shp_h, 255, G, 0)      ' 255G++000
            R = shp_r - shp_x / shp_w * tone_s - (Tone / 2) * tone_s * shp_y / shp_h    ' :  :  :
                Call DrawSquare(shp_x, shp_y + 2 * shp_h, shp_w, shp_h, R, 255, 0)      ' R--255000
            B = shp_x / shp_w * tone_s + (Tone / 2) * tone_s * shp_y / shp_h            ' :  :  :
                Call DrawSquare(shp_x, shp_y + 4 * shp_h, shp_w, shp_h, 0, 255, B)      ' 000255B++
            G = shp_g - shp_x / shp_w * tone_s - (Tone / 2) * tone_s * shp_y / shp_h    ' :  :  :
                Call DrawSquare(shp_x, shp_y + 6 * shp_h, shp_w, shp_h, 0, G, 255)      ' 000G--255
            R = shp_x / shp_w * tone_s + (Tone / 2) * tone_s * shp_y / shp_h            ' :  :  :
                Call DrawSquare(shp_x, shp_y + 8 * shp_h, shp_w, shp_h, R, 0, 255)      ' R++000255
            B = shp_b - shp_x / shp_w * tone_s - (Tone / 2) * tone_s * shp_y / shp_h    ' :  :  :
                Call DrawSquare(shp_x, shp_y + 10 * shp_h, shp_w, shp_h, 255, 0, B)     ' 255000B--
       Next
    Next
End Function


Function Checkerboard_2pattern(ByVal sld_w As Single, ByVal sld_h As Single)
'-------------------------------------------------------------------
' 関数: Checkerboard_2pattern
' 説明: 指定したスライドの幅(sld_w)と高さ(sld_h)に基づいて、
'       スライド上に市松模様のパターンを描画する関数。
'       定数div_countで設定された分割数により、スライドの幅を分割。
' 引数:
'   sld_w      - スライドの幅 (Single型)
'   sld_h      - スライドの高さ (Single型)
' 戻り値:
'   なし
'
' 使用例:
'   ' 幅960、高さ540のスライドに市松模様を描画する
'   Call Checkerboard_2pattern(960, 540)
'-------------------------------------------------------------------
    Dim shp_x As Single                 ' 四角形の左上隅のX座標
    Dim shp_y As Single                 ' 四角形の左上隅のY座標
    Dim shp_w As Single                 ' 四角形の幅
    Dim shp_h As Single                 ' 四角形の高さ
    Dim shp_r As Single                 ' 四角形の色(R)
    Dim shp_g As Single                 ' 四角形の色(G)
    Dim shp_b As Single                 ' 四角形の色(B)
    Dim R As Single, G As Single, B As Single
    Const div_count = 128               ' 分割数
    ' 四角のサイズを決定
    shp_w = sld_w / div_count
    shp_h = shp_w
    ' 色の初期化(ベースは白)
    shp_r = 255
    shp_g = 255
    shp_b = 255
    ' 描画
    For shp_y = 0 To sld_h / shp_h
        For shp_x = 0 To div_count - 1
            If (shp_x Mod 2 = 0) Xor (shp_y Mod 2 = 0) Then
                R = 255
            Else
                R = 0
            End If
            G = R
            B = R
            Call DrawSquare(shp_w * shp_x, shp_h * shp_y, shp_w, shp_h, R, G, B)
       Next
    Next
End Function
```
　これを使用すると、以下のようなものができる。
 ![色四角.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3838258/755c72a9-4f2b-447f-aa57-144df118d41f.gif)

(追記)
[【PowerPoint】色のついた四角形を並べる #VBA - Qiita](https://qiita.com/a_kata/items/8055a4967dd4747ae336)に続く。