|
▼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
|
|