Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


37975 / 76738 ←次へ | 前へ→

【43909】クラスモジュールを使用した例
発言  ichinose  - 06/10/29(日) 8:34 -

引用なし
パスワード
   おはようございます。
>他にもクラスモジュールを使ってChartオブジェクトの
>イベントを拾う方法も考えられますが、

仮にSheet1というシートにあるグラフ(グラフの名前はは何でもよいいです)
を例にコードを記述します。


クラスモジュール Class1 に

'===================================
Option Explicit
Public callingseq As String
Public WithEvents cht As Chart
'===================================
Private Sub cht_Activate()
  Application.OnKey "^{RIGHT}", callingseq
End Sub
'===================================
Private Sub cht_Deactivate()
  Application.OnKey "^{RIGHT}"
End Sub


Sheet1のシートモジュールに
'========================================================
Option Explicit
Private myclass() As Class1
'========================================================
Sub Worksheet_Activate()
'イベントモジュールは通常、Privateですが、
'ここは外部から呼ぶ出せるようにしておきます
  Dim cht As ChartObject
  Dim idx As Long
  If Me.ChartObjects.Count > 0 Then
    ReDim myclass(1 To Me.ChartObjects.Count)
    For Each cht In Me.ChartObjects
     Set myclass(idx + 1) = New Class1
     With myclass(idx + 1)
       Set .cht = cht.Chart
       .callingseq = "sheet1.右スクロール"
       End With
     idx = idx + 1
     Next
    End If
End Sub
'========================================================
Private Sub Worksheet_Deactivate()
  Erase myclass()
End Sub
Sub 右スクロール()
  MsgBox "ok scroll"
End Sub


最後にThisworkbookのモジュールに
'==================================================
Private Sub Workbook_Open()
  If ActiveSheet Is Worksheets("sheet1") Then
    Worksheets("sheet1").Worksheet_Activate
    End If
End Sub


として、一度保存して閉じた後、再度開いて確認してみてください。


>これの方が確実ですよ!!
と記述した意味も理解していただけるかもしれません。

0 hits

【43791】アルファベット以外のショートカットキーは可能? こま 06/10/25(水) 21:38 質問
【43792】Re:アルファベット以外のショートカットキ... ぱっせんじゃー 06/10/25(水) 21:47 発言
【43884】何とか考えましたが、あと少し。 教えて... こま 06/10/27(金) 23:37 質問
【43889】Re:何とか考えましたが、あと少し。 教え... ichinose 06/10/28(土) 10:27 発言
【43894】ありがとうございます。でも、まだ、質問... こま 06/10/28(土) 17:29 質問
【43900】Re:ありがとうございます。でも、まだ、質... ichinose 06/10/28(土) 21:18 発言
【43909】クラスモジュールを使用した例 ichinose 06/10/29(日) 8:34 発言
【43912】ありがとうございました。 こま 06/10/29(日) 16:35 お礼

37975 / 76738 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free