| 
    
     |  | ▼こま さん: おはようございます。
 
 >調査不足で申し訳ありませんでした。
 >以下、調べて考えた、実行できるようにはなったのですが、
 >
 >「右スクロール」というプロージャを「Ctrl+→」で実行させたいのですが、
 >ワークブックを開いている時、常に作動するのではなく、
 >グラフ(ChartObject)をActiveにした時
 >
 >  黒四角がグラフの四隅に現れる状態
 >  自動記録ですと下記の状態
 >   ActiveSheet.ChartObject("グラフ 1").Activate
 >   (グラフ名はグラフ1とは限りませんが・・・)
 >
 >になった時だけ、ショートカットを有効にするにはどうしたら良いのでしょうか?
 >Workbook_Opneをどう変化させたらいいのか?
 
 
 >
 >-------------------------------------------
 >ThisWorkbookに
 >
 >  Private Sub Workbook_Open
 >   ショートカットON
 >  end sub
 >
 >標準モジュールに
 >
 >  Sub ショートカットON()
 >    Application.Onkey "^{RIGHT}", "右スクロール"
 >  End Sub
 この「ショートカットON」というプロシジャー実行後は、
 Ctrl+→キーで「右スクロール」というプロシジャーが実行されるのですよね?
 ならば・・・、
 この「右スクロール」というプロシジャーの中で
 選択されているオブジェクトがChartObjectか否かをチェックしたらいかがですか?
 
 
 '============================
 Sub 右スクロール()
 Dim sel As Object
 Dim retcode As Long
 retcode = 1
 Set sel = Selection
 Do Until TypeName(sel) = "Application"
 If TypeName(sel) = "ChartObject" Then
 retcode = 0
 Exit Do
 End If
 Set sel = sel.Parent
 Loop
 If retcode = 0 Then
 'ここに本来、Ctrl+→が押された時の処理コードを記述します
 MsgBox "ok"
 End If
 End Sub
 
 尚、上記では、Chartobjectの子オブジェクト(Axis、Legend、Gridlines等)
 を選択してもChartObjectとみなして処理が実行されるようにしてありますが、
 あくまでも外側を選択して時というならば、コードを変更してください。
 
 |  |