[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『図形のグラデーションをセルの値で可変したいのですが・・・』(sato)
いつもお世話になります。
表題のとおり、図形を2色のグラデーションで配置しています。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
ActiveSheet.Shapes.Range(Array("Rectangle 12")).Select With Selection.ShapeRange.Fill .Visible = msoTrue .ForeColor.RGB = RGB(255, 0, 0) .BackColor.RGB = RGB(255, 250, 250) .TwoColorGradient msoGradientVertical, 1 −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
これのグラデーションの分岐点をシートのセルの値に応じて
色を変えたい【RGB(255,0,0)】〜【RGB(255,250,250)】のですが、
?@グラデーションの分岐点を取り扱うコードがわかりません。
色の値には「変数」【RGB(255,color,color)のような】を使っても
(もし使えるなら)
セルの値【RGB(255,Range("セル値").Value,Range("セル値").Valueみたいな】を使ってもかまいません。
どのようにしたらいいでしょうか?
< 使用 Excel:unknown、使用 OS:Windows7 >
xl2013 なら以下が参考になりませんか。
http://q.hatena.ne.jp/1341606719
(β) 2016/04/21(木) 14:14
ありがとうございます。
ご記載のリンクはこの件を調べているときに出てきたページなんですが、
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
Sub macro()
Dim sp As Shape Set sp = ActiveSheet.Shapes.AddShape(msoShapeRectangle, 90, 90, 90, 80) With sp.Fill .ForeColor.RGB = RGB(0, 128, 128) .OneColorGradient msoGradientHorizontal, 1, 1 .GradientStops.Insert RGB(255, 0, 0), 0 .GradientStops.Insert RGB(0, 255, 0), 0.5 .GradientStops.Insert RGB(0, 0, 255), 0.99 End With End Sub −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
上記コードの【 .GradientStops.Insert RGB(255, 0, 0), 0】の
「insert」はグラデーションの分岐点を挿入だと思うんですが、
既存の図でグラデーションの分岐点を操作したい場合は「Item()」とあるのですが、
どう変更してもエラーがでます。
コードの書き方の問題かもしれませんが、リファレンス等を見ても解決しない状況です。
(sato) 2016/04/21(木) 16:24
ご回答ありがとうございます。
おっしゃるとおり、上記のコードで分岐点は表示されます。
ただし、これを実行して、図が出た後に分岐点の位置を変更したい場合ですが、
β様のリンクでは、
.GradientStops.Insert RGB(255, 0, 0), 0
の「.Insert」を「Item()」か「Items()」にすれば、分岐点の位置が変更できる
みたいなことが書かれているんですが、
.GradientStops.Item(1) RGB(255, 0, 0), 0 と書いても
.GradientStops.Item(1) = RGB(255, 0, 0), 0 と書いても
.GradientStops.Item(1) RGB(255, 0, 0) と書いても
.GradientStops.Item(1) = RGB(255, 0, 0), 0 と書いても
エラーが出て表示されないんです。
(sato) 2016/04/21(木) 17:01
.GradientStops.Item(1).Color.RGB = RGB(0, 0, 255) .GradientStops.Item(2).Color.RGB = RGB(0, 0, 128) .GradientStops.Item(3).Color.RGB = RGB(0, 0, 32) (???) 2016/04/21(木) 17:12
.GradientStops.Item(1).Position = 0.2 .GradientStops.Item(2).Position = 0.4 .GradientStops.Item(3).Position = 0.6 (???) 2016/04/21(木) 17:16
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.