1

Excel 2010 で無効にしたグラフのデフォルト/ネイティブのサイズ変更動作を元に戻す方法を探しています (たとえば、VBA でグラフを操作することによって)。

今、私が考えている行動についてどこにも何も見つけることができなかったので、詳細な説明が必要であると仮定します.

Excel の 4 ~ 5 個のセルにランダムな数値データを入力して選択し、新しいクラスター化された縦棒グラフを挿入します。チャートのプロット エリアを表示する必要があります。チャートを選択し、次の行で PlotArea.Top 値を取得します。

ActiveChart.PlotArea.Top

グラフに触れていない場合は、値 7 が返されます。次に、グラフのハンドルバーの 1 つを使用してグラフを垂直方向にサイズ変更し、同じコマンド ラインを再度使用します。

activechart.plotarea.top

返される値が 7 のままであることに注意してください。VBA でこのプロパティを 7 に設定します。

ActiveChart.PlotArea.Top = 7

再び、ハンドルバーの 1 つをつかみ、チャートを垂直方向にサイズ変更して、次を使用して .top プロパティを再度取得します。

ActiveChart.PlotArea.Top

値がどのように変化したかに注目してください。グラフのサイズを増減したかどうかに応じて、7 よりも小さいか大きいかのいずれかになります。

チャートのいずれかの要素が手動または VBA コードで移動されると、この「絶対位置」プロパティが失われ、チャートのサイズが変更されるたびに ChartArea 内で移動が開始されます。一部の要素は .SetElement を使用してリセットできますが、これはプロット エリアでは機能しません。たとえば、次のコマンド ラインは、私が説明している動作を復元しません。

ActiveChart.SetElement msoElementPlotAreaNone
ActiveChart.SetElement msoElementPlotAreaShow

私は VBA を使用してチャートのサイズ変更を自動化していますが、プロット エリアを自動的に移動させると、チャートのサイズ変更の影響を予測することが非常に難しくなり、結果が一定しなくなります。

質問に戻ります。グラフ全体、または少なくとも特に PlotArea に対して、このデフォルトの動作を元に戻す方法を知っている人はいますか?

助けてくれる人に前もって感謝します!

ヴィンセント

4

1 に答える 1

2

手動でプロット領域のサイズを変更したときにこれに遭遇し、凡例を移動してもプロット領域のサイズがまったく変更されませんでした。

グラフをテンプレートとして保存しようとしましたが (Excel 2013 で右クリックしてテンプレートとして保存)、プロット エリアが手動で設定されていました。

したがって、テンプレートを保存する前に自動サイズの動作を維持することをお勧めします。手動で変更した後にグラフの自動サイズ変更の動作を再設定する唯一の方法は、マクロを使用することです。

これは、自動サイズ変更の動作を元に戻すために使用したマクロです

Sub Macro1()
'
  ' this selects the chart based on the chart name
  ActiveSheet.ChartObjects("Chart 4").Activate
  ' this selects the plot area
  ActiveChart.PlotArea.Select
  ' this clears any custom formatting such as borders or fill colors
  ActiveChart.PlotArea.ClearFormats
  ' this resets the auto-sizing behavior after plot area manually re-sized
  ActiveChart.PlotArea.Position = xlChartElementPositionAutomatic
End Sub

参考文献

于 2016-05-02T17:59:07.900 に答える