Worksheet_Change
イベントによってトリガされたこのルーチンを使用して、選択したチャートを表示し、他のすべてのチャートを画面外の保持位置に移動しました。VBAチャートのプログラムによる配置が停止しました
Sub shuffleCharts(chartName As String)
Dim analysisChart As ChartObject
For Each analysisChart In ActiveSheet.ChartObjects
With analysisChart
.Left = 1575
End With
Next analysisChart
With ActiveSheet.ChartObjects(chartName)
.Left = 15
End With
End Sub
それは、約20分前まで働いたが、今のチャートを再配置することを拒否しました。 Localsウィンドウでチェックしても、エラーは発生せず、オブジェクトと変数はすべて正しく表示されます。
私が行ってきた唯一のことは、何らかの形でチャートに影響を与えている可能性があり、別のモジュールのチャートシリーズデータソースを強調表示する方法を試していることです。これは非常に早い段階にあり、私はチャートを頻繁に操作しないので、実際にはさまざまなメソッドとプロパティを探っていました。
私はExcelを再起動し、昨日から保存時に動作していたバージョンをチェックしましたが、結果は同じです。
私のマシン上で実行中のバグDBがあるので、私はまだリブートしていません。私はランチタイムまで待つことをお勧めします。
編集:とにかく、うんざりして再起動しました - 問題はまだあります。
これを引き起こした可能性がありますが、どのように私は再びそれを働かせるかもしれませんか?
編集:これは奇妙になります。プロシージャを手動で呼び出すと、次のようになります。
Call shuffleCharts("Chart 1")
手順は引き続き正常に動作します。しかし、文字列を宣言してグラフの名前として渡すと、...
Dim myChart as String
myChart = "Chart 1"
Call shuffleCharts(myChart)
...それでは動作しません。 WTF?
編集2:コードが他のマシンでも正常に動作していることを確認しましたので、私のマシンはいくつかの奇妙な方法で影響を受けているようです。私はまだ、その「もの」が何であるかを知りたいと思っています。
ファイルは読み取り専用ですか? :) – shahkalpesh
コードがエラーなしで実行されている場合、それが動作していないと言ったときにはどういう意味ですか? – shahkalpesh
@shahkalpesh - イベントが発生し、コードが実行されますが、最近までチャートの位置は変更されません。 ScreenUpdatingがオンになっていて、ファイルが読み書き可能です(違いはありません)。 – Lunatik