-PR-
解決済み

エクセルマクロを割り当てたツールバー

  • 暇なときにでも
  • 質問No.89625
  • 閲覧数145
  • ありがとう数1
  • 気になる数0
  • 回答数1
  • コメント数0

お礼率 93% (14/15)

エクセルマクロでActivateNextを使ってCtrl+Tabと同じ動作をするツールバーを作りました。
このツールバーを使ってCtrl+Shift+Tab(ActivatePrevious)と同じ動作をさてたいと思っています。
通常はボタンを押すとActivateNextが動き、Shiftを押しながらボタンを押すとActivatePreviousが動くようにしたいのです。

プレビューボタンはShiftを押しながらボタンを押すと印刷ボタンになりますよね。
イメージまで変わらなくてもいいです。処理だけでも変えたいです。

Shiftが押されているって情報がマクロに渡せれば良いのでしょうが・・・。

Sub ウインドウ切替(kbn)
  If kbn = 1 Then
    ActiveWindow.ActivatePrevious
  Else
    ActiveWindow.ActivateNext
  End If
End Sub

そのような情報って取得できるのでしょうか?[Excel2000]
通報する
  • 回答数1
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.1
レベル11

ベストアンサー率 49% (139/279)

Windows APIのGetAsyncKeyStateを使うとキーボードの状態が取得できます。
実際のコーディングはこんな感じでしょうか。

Option Explicit

Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer

Public Sub ウインドウ切替()
If GetAsyncKeyState(vbKeyShift) <> 0 Then
'Shiftキーが押されている
ActiveWindow.ActivatePrevious
Else
'Shiftキーは押されていない
ActiveWindow.ActivateNext
End If
End Sub
補足コメント
Masazo-

お礼率 93% (14/15)

実際にAPI関数を宣言し、作成したところ実現しました。
ただ、エクセルマクロのみでは出来ないものなのでしょうか?
投稿日時 - 2001-06-14 19:15:02
お礼コメント
Masazo-

お礼率 93% (14/15)

回答ありがとうございます。
今までAPIという言葉に対し、目を伏せていました。
APIを使うと何でもできるってイメージがあるのですが、何ができるか知らない為、発想が行き着きません。

避けつづけるのも、そろそろ限界かもしれませんね。。。
投稿日時 - 2001-06-14 10:44:43
-PR-
-PR-
このQ&Aのテーマ
このQ&Aで解決しましたか?
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A
-PR-
-PR-
このやり方知ってる!同じこと困ったことある。経験を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


専門家があなたの悩みに回答!

-PR-

ピックアップ

-PR-
ページ先頭へ