- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルマクロを割り当てたツールバー)
エクセルマクロを割り当てたツールバー
このQ&Aのポイント
- エクセルマクロでCtrl+Tabと同じ動作をするツールバーを作成しました。今回はCtrl+Shift+Tab(ActivatePrevious)と同じ動作を実現したいと思っています。
- 通常のボタンを押した場合はCtrl+Tabの機能が動きますが、Shiftを押しながらボタンを押すとCtrl+Shift+Tabの機能が動くようにしたいです。
- 要件としてはShiftが押されているかどうかの情報を取得する必要があります。情報が取得できれば、マクロで処理を変更することができます。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
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
お礼
回答ありがとうございます。 今までAPIという言葉に対し、目を伏せていました。 APIを使うと何でもできるってイメージがあるのですが、何ができるか知らない為、発想が行き着きません。 避けつづけるのも、そろそろ限界かもしれませんね。。。
補足
実際にAPI関数を宣言し、作成したところ実現しました。 ただ、エクセルマクロのみでは出来ないものなのでしょうか?