|    | 
     ▼eyuka さん: 
こんにちは〜 
 
>2002で使っていたクラスモジュールの以下のコードが、 
>2007に変えたところ(OSもXPからwindows7に変えました)、動かなくなってしまいました。 
 
ほんとに2002で動きましたか? 
こうしたらどうでしょう? 
Class2を以下のように作って、 
標準モジュールの Chartクラスのセット() 
を実行しします。 
 
 
'------------------------ クラスモジュール Class2 
Option Explicit 
Private WithEvents Chart0 As Chart 
 
Public Property Set Chart(ThisChart As Chart) 
  Set Chart0 = ThisChart 
End Property 
 
Private Sub Class_Terminate() 
  Set Chart0 = Nothing 
End Sub 
 
Private Sub Chart0_Select(ByVal ElementID As Long, _ 
          ByVal nSeries As Long, ByVal iPoint As Long) 
 Dim VarX, VarY 
 Dim t1 As Date 
 Dim ss As String 
 Dim Msg As String 
 
 Select Case ElementID 
  Case xlSeries   '--- データ系列が選択されたとき 
   If iPoint > 0 Then ' --特定の要素が選択されたとき 
     With Chart0.SeriesCollection(nSeries) 
       VarX = .XValues 
       VarY = .Values 
       t1 = CDate(VarX(iPoint)) 
       ss = t1 & " 値:" & VarY(iPoint) 
     End With 
     Msg = ss & vbCrLf & _ 
      "削除始まりなら<Yes> 終わりなら<No>" 
     '----------------------------------- 分岐処理 (要、再検討) 
     Select Case MsgBox(Msg, vbYesNoCancel Or _ 
       vbInformation Or vbDefaultButton3) 
      Case vbYes 
       If IsEmpty(Range("K2").Value) Then 
        Range("K2").Value = t1 
       Else 
        Range("K1").End(xlDown).Offset(1).Value = t1 
       End If 
      Case vbNo 
        Range("K1").End(xlDown).Offset(, 1).Value = t1 
     End Select 
   End If 
 End Select 
 
End Sub 
 
'------------------------ 標準モジュール 
Option Explicit 
Dim Cht As Class2 
  
Sub Chartクラスのセット() 
 Set Cht = New Class2 
 Set Cht.Chart = ActiveSheet.ChartObjects(1).Chart 
  
End Sub 
 
Sub Chartクラスの解放() 
 Set Cht = Nothing 
End Sub 
 
 | 
     
    
   |