マクロで図形の塗りつぶしを行うと 「指定された値は境界を越えています」 のエラーになります

Excel 2013を使用してシート上にある図形に対して,

マクロ内で指定した色で塗りつぶしを行うというマクロを生成しています。

しかしマクロを実行すると「指定された値は境界を越えています」という

エラーメッセージが表示されます。

なおマクロは以下のように実装しています。

------------------------------

Sub hoge()
    Call 塗りつぶし(255, 153, 51)
End Sub

Private Sub 塗りつぶし(R As Long, B As Long, G As Long)
    ActiveSheet.Shapes("土台1").Fill.ForeColor.SchemeColor = RGB(R, G, B)
    ActiveSheet.Shapes("土台2").Fill.ForeColor.SchemeColor = RGB(R, G, B)
End Sub

------------------------------

なおマクロを実装しているファイルでは複数のシートが存在し,

シートごとにマクロの標準モジュールを分けています。

最初の方のモジュールにも上記と同様の塗りつぶし処理が存在しますが,

こちらについては図形の塗りつぶしに成功します。

何が原因でエラーが発生しているかわかるでしょうか。

"**モデレーター注**

タイトルを編集しました。

編集前タイトル : マクロで図形の塗りつぶしを行うとエラーになります "

ActiveSheet.Shapes("土台1").Fill.ForeColor.SchemeColor = RGB(R, G, B)
ActiveSheet.Shapes("土台2").Fill.ForeColor.SchemeColor = RGB(R, G, B)

ActiveSheet.Shapes("土台1").Fill.ForeColor.RGB= RGB(R, G, B)
ActiveSheet.Shapes("土台2").Fill.ForeColor.RGB= RGB(R, G, B)
としたら着色できました。

http://www.happy2-island.com/excelsmile/smile03/capter01209.shtml
ここに
「Fill.ForeColor.SchemeColorプロパティ と Fill.ForeColor.RGBプロパティ の違い」についての解説があります。

この回答が役に立ちましたか?

お役に立てず、申し訳ございません。

素晴らしい! フィードバックをありがとうございました。

この回答にどの程度満足ですか?

フィードバックをありがとうございました。おかげで、サイトの改善に役立ちます。

この回答にどの程度満足ですか?

フィードバックをありがとうございました。

 
 

質問情報


最終更新日: 2025年3月28日 表示数 7,798 適用先: