Home » エクセルマクロ・Excel VBAの使い方 » グラフ・Chart » VBAでグラフの行と列を入れ替える-Chart.PlotBy

VBAでグラフの行と列を入れ替える-Chart.PlotBy

対象:Excel2007, Excel2010, Excel2013, Windows版Excel2016

アクセスログを眺めていて、
「エクセル vba グラフ 行列を逆にする」
「excel vba グラフ 行列の入れ替え」
「excel 2010 vba グラフ 行列 入替」
といった検索キーワードでのアクセスが、結構あることに驚かされました。

グラフを選択すると自動的に表示される[グラフツール]の、[デザイン]タブ-[行/列の切り替え]ボタンをクリックすると、

グラフの行と列を入れ替えるExcelマクロ

グラフの行と列(X軸とY軸)を入れ替えることができます。

この操作と同じことを行うExcel VBA(Visual Basic for Applications)のコードを探していらしたのでしょう。

どのアプリケーションの話か厳密にはわかりませんけれど、
「vba chart 行列の切り替え」
「マクロ グラフ 行列 入れ替え」
という検索キーワードも、同じことを探していらした可能性が高いだろうと推測しています。

グラフの行列入替を行うサンプルマクロ

VBAでグラフの[行/列の切り替え]を行う具体的な状況がよくわからないので、参考になりそうな簡単なマクロをご紹介しておきます。

Sub グラフの行と列を入れ替える()
 With ActiveChart
  Select Case .PlotBy
   Case xlRows
    .PlotBy = xlColumns
   Case xlColumns
    .PlotBy = xlRows
  End Select
 End With
End Sub

グラフを選択しておいて上記のマクロを実行すれば、[行/列の切り替え]が行われます。

サンプルマクロの解説

ChartオブジェクトのPlotByプロパティを使うと、

グラフの行と列を入れ替えるExcelマクロ

VBAから[行/列の切り替え]ができます。

Chart.PlotByプロパティには、XlRowCol列挙に定義されている、

グラフの行と列を入れ替えるExcelマクロ

定数・xlColumnsまたはxlRowsを指定できます。

Chart.PlotByプロパティがTrue・Falseを指定できるのであれば、Not演算子を使うシンプルなコードにできたのですが、xlColumnsは「2」xlRowsは「1」という整数なので、Select Case文で
   Case xlRows
    .PlotBy = xlColumns
   Case xlColumns
    .PlotBy = xlRows
と、愚直に切り替えを行っています。

最終更新日時:2022-06-22 16:28

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » グラフ・Chart » VBAでグラフの行と列を入れ替える-Chart.PlotBy

「グラフ・Chart」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.