2009-06-25 5 views
0

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:コードが他のマシンでも正常に動作していることを確認しましたので、私のマシンはいくつかの奇妙な方法で影響を受けているようです。私はまだ、その「もの」が何であるかを知りたいと思っています。

+0

ファイルは読み取り専用ですか? :) – shahkalpesh

+0

コードがエラーなしで実行されている場合、それが動作していないと言ったときにはどういう意味ですか? – shahkalpesh

+0

@shahkalpesh - イベントが発生し、コードが実行されますが、最近までチャートの位置は変更されません。 ScreenUpdatingがオンになっていて、ファイルが読み書き可能です(違いはありません)。 – Lunatik

答えて

0

さて、私はこれをソートしましたが、どういうわけか本当にわかりません。私は接続オブジェクトでうんざりしていたし、それ自体を修正するようだ。

ルナティク