|
▼こま さん:
おはようございます。
>調査不足で申し訳ありませんでした。
>以下、調べて考えた、実行できるようにはなったのですが、
>
>「右スクロール」というプロージャを「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とみなして処理が実行されるようにしてありますが、
あくまでも外側を選択して時というならば、コードを変更してください。
|
|