[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『VBAで、線なしマーカーのみの折れ線グラフの線の太さを変更』(う)
VBAで、線なしマーカーのみの折れ線グラフのマーカーの線の太さを変更したいと思い、以下のマクロを記述しました。
sub aaa()
Dim wColor
With ActiveSheet.ChartObjects(1).Chart.FullSeriesCollection(1) wColor = .MarkerForegroundColor .Format.Line.Visible = msoTrue .Format.Line.Weight = 2.5 .Format.Line.Visible = msoFalse .MarkerForegroundColor = wColor End With end sub
しかし、.Format.Line.Weight に少数を指定すると、指定した値では無い値になってしまいます。
例えば、以下の結果となりました。
Format.Line.Weightの設定値 ⇒ マーカーの線の太さの実行結果
0.75 ⇒ 0.25
1 ⇒ 1
1.5 ⇒ 1
2 ⇒ 2
2.1 ⇒ 2
5.25 ⇒ 5
なお、線ありの場合は、指定した値通りの実行結果になります。
線なしマーカーのみの折れ線グラフのマーカーの線の太さを、少数値で細かく設定する方法ありますでしょうか?
ちなみ、これは以前に調べて自分ではどうしてもわからず放置していたものを、時間ができたので再度調べているところなので、グラフ指定は固定で試しています。
テストデータもこのようなデータです。
あ A 77 B 63 C D 57 E 32
ご教示いただければ幸いです。
< 使用 Excel:Excel2013、使用 OS:Windows7 >
実際には、複数地点の数年分の日データ、月データがあり、
日データは線ありマーカーなし折れ線グラフ、月データは線無しマーカーのみで表現するグラフを、1地点1年ごとにグラフ化しています。(時間データと日データで、1ヶ月ずつという場合もある。)
グラフを作成した後に、線なしマーカーのみの系列の線の太さを変更が必要になることがあります。
今はマクロでの実行を諦め一つを設定して、残りは繰返しで対応しています。
その時により数は異なりますが変更対象のグラフの数が多く、今後のためにVBAで実行する方法はないかと調べています。
よろしくお願いいたします。
(う) 2019/03/20(水) 17:41
こんばんは。
こんなマニアックな話が宿題とか誰も思わないと思いますが。 で、Excel2010ですが、いろいろやってみました。
2010では、FullSeriesCollection が無いなど、少し違うのでバージョン依存の部分もあるかもしません。
結果ですが、 ・プロパティをセットする順番に依存 ・Format.Line.Visible ではなくて、.Border.LineStyle で線を消すのがよい
MarkerForegroundColor を Line.Weight より後に設定すると、そのときに整数に丸められます。
色が先、線幅があとだと、大丈夫でした。
Sub aaa2() Dim wColor With ActiveSheet.ChartObjects(1).Chart.SeriesCollection(1) wColor = .MarkerForegroundColor .Format.Line.Visible = msoTrue .MarkerForegroundColor = wColor .Format.Line.Weight = 2.5 .Border.LineStyle = xlNone End With End Sub
2013ではどうでしょうか。ご確認ください。 (でれすけ) 2019/03/20(水) 17:58
2013でも、「.Border.LineStyle = xlNone」の使用で、指定したマーカーの線の太さになりました!
マーカーの色を設定していたのは、.Format.Line.Visible =msoFlaseを実行すると、マーカーの線が消えてしまうため、マーカーの線の色を設定することでマーカーの線を再表示していました。
「.Border.LineStyle = xlNone」であれば、マーカーの線は消えないので、マーカーの線の色の再設定は不要ですね。
ただ、マーカーの色と線の太さの両方を変更することもあるので、順番にも気を付けたいと思います。
本当にありがとうございました!
(う) 2019/03/22(金) 09:28
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.