EXCELで図を塗りつぶすとき、PowerPointなどの「スポイト」ツールがないため、「FE-Color Pallet」などを使って目的の色を調べる。
色のRGBをメモっておいて塗りつぶし色を指定していた。
今回、スポイトした色を「FE-Color Pallet」の「コピー」でクリップボードにコピーし、EXCELで選択した図を塗りつぶすためのマクロを制作したので紹介する。
- 「FE-Color Pallet」の「画面の色」を使って
- スポイトを目的の色に合わせる
- スポイト中の色が表示される
- 「FE-Color Pallet」の「コピー」を押す

- EXCELで対象の図を選択する
- マクロを実行
- 図が塗りつぶされる

マクロは次の通り。
コマンドボタンにこのマクロを登録する。
'******** スポイトした色で塗りつぶし ******** Sub FillSpoitColor() Dim bufa As String, bufb As String, CB As New DataObject Dim R As Long, G As Long, B As Long, rgbary With CB .GetFromClipboard 'クリップボードからDataObjectにデータを取得 bufa = .GetText 'DataObjectのデータを格納 End With bufb = Mid(bufa, 5, Len(bufa) - 1) bufb = Left(bufb, Len(bufb) - 1) rgbary = Split(bufb, ",") R = Val(rgbary(0)) G = Val(rgbary(1)) B = Val(rgbary(2)) Selection.ShapeRange.Fill.ForeColor.RGB = RGB(R, G, B) Selection.ShapeRange.Fill.Solid End Sub