| 
    
     |  | ▼イチロー さん: こんばんは。
 
 >これは、グラフシートのモジュールに貼り付けてください!と書いてあります
 >が、自分は標準モジュールに貼り付けたいのです。
 ご提示された Chart_MouseUpは、イベントプロシジャーですから、標準モジュールには
 記述する事が出ません。
 これは、クラスモジュールに記述する事で可能となります。
 クラスモジュール(クラス名は、既定名のClass1にしておきます)に
 '======================================================
 Public WithEvents cht As Chart
 '===================================================================
 '↓以下のコードは、イチローさんがご提示されたコードをほんのちょっとだけ
 '変更した内容です。
 
 Private Sub cht_MouseUp(ByVal Button As Long, ByVal Shift As Long, ByVal x As Long, ByVal y As Long)
 Dim ElemID As Long, Arg1 As Long, Arg2 As Long
 Dim Var As Variant
 Dim Msg As String
 
 
 cht.GetChartElement x, y, ElemID, Arg1, Arg2
 '  ↑このオブジェクト変数の変更
 Select Case ElemID '定数値の詳細はヘルプを参照
 
 Case xlSeries 'データ系列
 Var = cht.SeriesCollection(Arg1).XValues
 '   ↑このオブジェクト変数の変更
 
 Msg = "要素:" & Var(Arg2)
 Var = cht.SeriesCollection(Arg1).Values
 Msg = Msg & vbCrLf & "値:" & Var(Arg2)
 MsgBox Msg
 
 Case Else
 'その他の処理
 
 End Select
 
 End Sub
 
 
 次に標準モジュールに、
 '======================================================
 Public cht_class As Class1
 '=====================================================
 Sub main()
 
 Call サンプル作成(Sheets("Sheet1"))
 
 Charts.Add
 With ActiveChart
 .ChartType = xlColumnClustered
 .SetSourceData Source:=Sheets("Sheet1").Range("A1:B7"), PlotBy:= _
 xlColumns
 .Location Where:=xlLocationAsNewSheet
 .HasTitle = True
 .ChartTitle.Characters.Text = "身長(cm)"
 .Axes(xlCategory, xlPrimary).HasTitle = True
 .Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "氏名"
 .Axes(xlValue, xlPrimary).HasTitle = False
 End With
 Set cht_class = New Class1
 Set cht_class.cht = ActiveChart
 End Sub
 '================================================================
 Sub サンプル作成(sht As Worksheet)
 With sht
 .Range("a1:a7") = WorksheetFunction.Transpose(Array("氏名", "A", "B", "C", "D", "E", "F"))
 .Range("b1:b7") = WorksheetFunction.Transpose(Array("身長(cm)", 150, 160, 170, 180, 145, 155))
 End With
 End Sub
 
 としてみて下さい。
 標準モジュールのMainを実行してみて下さい(Sheet1という名前のシートは作っておいて下さいね)。
 チャートシートが作成されるはずですから、そこでイベントが実行されるかどうか
 試してみて下さい。
 
 
 >実際、グラフシートは始めは存在しないため、グラフシートのモジュールにプ
 >ログラムを張ることが出来ません。VBAを実行する事でグラフシートを新規に
 >作成し、そのグラフシートにおいてクリックして要素を読み込みたいのですが
 >、標準モジュールに貼り付けても動作してくれません。
 >何か良い方法は無いでしょうか?
 >
 >ごちゃごちゃしましたけどよろしくお願いします。
 
 |  |