Excel VBA質問箱 IV

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

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


37989 / 76732 ←次へ | 前へ→

【43889】Re:何とか考えましたが、あと少し。 教えて...
発言  ichinose  - 06/10/28(土) 10:27 -

引用なし
パスワード
   ▼こま さん:
おはようございます。

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

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