|    | 
     ▼ドカ さん: 
>▼kanabun さん 何度もありがとうございます。 
> 
>う〜〜ん なぜだか分かりませんが、ぴくりとも動きません。 
>グラフの書き方も色々変えてみましたが、まったく動きませんでした。 
 
2点ほど、確認してください 
1.修正後のコードは対象(グラフのある)シートのシートモジュールに 
  書いていますか? 
2.修正後のコードは D,E列のセル変更に反応します。 
  対象シート上で DまたはE列変更して、Worksheet_Changeイベント 
  が起きてChangeイベントプロシージャが呼び出されているか、 
  また、プロシージャ内でどのようにコードが実行されているか? 
  以下の方法で調べてください: 
> Private Sub Worksheet_Change(ByVal Target As Range) 
>  Dim myCol As Long 
>  myCol = Target.Column 
まず、この 「  myCol = Target.Column 」の行を(マウスで)選択し、 
キーボードの[F9]を押してこの行に「ブレークポイント」をセットして 
ください。 
つぎに、シートに戻り、D,Eいずれかの列にデータを入力してください 
入力を画定するために[Enter]を押すと、Changeイベントが発生し、 
先ほどのブレークポイントのセットしてある行で、プログラムの 
実行が一時中断(Break)します。 
そしたら [F8]を押して、プログラムを1行だけ実行してください。 
>  myCol = Target.Column 
の行が実行されます。myCol のところにマウスをあてがうと myCol変数の 
現在の内容が表示されます。myCol はいくつになってますか? 
4ですか? 5ですか? 
このようにして、[F8]を押して一行づつ実行しながら、 
>    For Each Ser In .Chart.SeriesCollection 
>      zz = Ser.Formula   '現在の系列式 
>      ss = Split(zz, ",")(2) 
>      Set r = Me.Range(ss)  '元データ範囲 
>      If r.Column = myCol Then 
zz がどのような式で、 
zzをカンマで区切った3番目の部分が 現在の「y軸元データ範囲」で 
その部分(Address)だけ 変数ssに代入して、元の範囲を取得している 
ことなど、 
順にトレースしていってください。 
そうするうちに、あなたの意図しているとおりにプログラムが 
動いていてくれない部分がどこか見えてくると思います。 
不具合部分が分かったらそれを修正してください。 
修正の仕方が分からなければ、不具合部分の報告だけお願いします。 
こういう作業をデバッグ作業といいます。 
 
 | 
     
    
   |