「グラフ 枠線 消す vba」
という検索キーワードでアクセスがあることに気が付きました。
グラフの枠線を消すサンプルマクロ
以下のSubプロシージャで、アクティブシートに存在する1つ目のグラフの枠線を消せます。
Dim cht As Chart
Set cht = ActiveSheet.ChartObjects(1).Chart
cht.ChartArea.Format.Line.Visible = msoFalse
End Sub
オブジェクト変数を使えば自動メンバー表示される
オブジェクト変数を使わない、
ActiveSheet.ChartObjects(1).Chart _
.ChartArea.Format.Line.Visible = msoFalse
といった1行の代入ステートメントでもOKですけれど、(最低でも学習段階では)オブジェクト変数への代入を行うことをおすすめします。
オブジェクト変数を使わずに、
ActiveSheet.
と書き始めても自動メンバー表示されませんが、上記のようにChart型オブジェクト変数に参照情報を代入しておけば、
上図のように自動メンバー表示されますから。
また拙著『いちばんやさしいExcel VBAの教本』でも多用しているローカルウィンドウで、オブジェクト変数の中身を覗いておくことも、
おすすめします。
階層が深く辿るのがちょっと面倒ですが。
ChartArea.BorderではなくChartArea.Formatを使う理由
ネット上では、上述の
cht.ChartArea.Format.Line.Visible = msoFalse
ではなく、
cht.ChartArea.Border.LineStyle = False
といったコードを見かけることもあります。
確かに、ChartAreaオブジェクトのBorderプロパティでBorderオブジェクトを取得して、BorderオブジェクトのLineStyleプロパティでも、枠線を非表示にすることは可能です。
しかしChartAreaオブジェクトのBorderプロパティは、2007以降のExcelの場合、オブジェクトブラウザーでは非表示になっていますから、
階層は一段深くなりますけれど、Formatプロパティを使うほうがイイだろうと私は感じます。
アクティブシートの全グラフの枠線を消すサンプルマクロ
以下のSubプロシージャで、アクティブシートに存在するすべてのグラフで枠線を消せます。
Dim cho As ChartObject
For Each cho in ActiveSheet.ChartObjects
cho.Chart.ChartArea.Format.Line.Visible = msoFalse
Next cho
End Sub
For Each~Nextループで処理するために、Chartオブジェクトの1つ上のChartObjectオブジェクトを使ったSubプロシージャにしています。
最終更新日時:2022-06-23 15:05
Home » エクセルマクロ・Excel VBAの使い方 » グラフ・Chart » グラフの枠線を消す-ChartArea.Format.Line