|
それでは、現在シートモジュールに入れているマクロを削除し、
あらたに ThisWorkbookモジュール に以下のマクロを入れて下さい。
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, _
ByVal Target As Range, Cancel As Boolean)
Dim XVR As Range, VR As Range
Dim MyCh As ChartObject
Dim Nm As String
If Target.Address = "$A$1" Then
With Sh.ChartObjects
If .Count > 0 Then
.Item(1).Visible = IIf(.Item(1).Visible, False, True)
End If
End With
Cancel = True: Exit Sub
End If
If Intersect(Target, Range("A2", Range("A65536").End(xlUp))) Is _
Nothing Then Exit Sub
Cancel = True
Set XVR = Range("C1", Range("IV1").End(xlToLeft))
Set VR = XVR.Offset(Target.Row - 1)
Nm = Target.Offset(, 1).Text
Application.ScreenUpdating = False
If Sh.ChartObjects.Count > 0 Then
Set MyCh = Sh.ChartObjects(1)
If MyCh.Visible = False Then MyCh.Visible = True
MyCh.Chart.SeriesCollection(1).Delete
Else
With Sh.Range("C2:I22")
Set MyCh = Sh.ChartObjects.Add(.Left, .Top, .Width, .Height)
End With
End If
MyCh.Chart.ChartWizard VR, xlLine, 4, xlRows, , , 0, Nm
MyCh.Chart.SeriesCollection(1).XValues = XVR
Application.ScreenUpdating = True
Set XVR = Nothing: Set VR = Nothing
End Sub
このマクロの機能は
>ワークシート全体に対して、共通
になります。
>グラフの表示区域
は、アクティブシートの C2:I22 のセル範囲と同じ位置・大きさになります。
>製造コードを選択したら、前のグラフをクリア
そして新しくダブルクリックした行のデータをプロットします。
グラフタイトルは、常に"ダブルクリックしたセルの右隣り(B列)の値"です。
あと、既にグラフを表示している場合、データの入力範囲がグラフに隠れて
見えなくなりますから、その場合は A1 をダブルクリックして下さい。
一時的にグラフを非表示に出来ます。もう一度 A1 をダブルクリックすると
表示します。つまり交互に表示状態を切り替えられる、というわけです。
試してみて下さい。
|
|