Excel VBA フローティングオブジェクト

Excel VBA フローティングオブジェクト

フォーラムをいろいろ見てみましたが、私の問題は解決しませんでした。図形を使ってカスタム ボタン バーを作成し、それを Excel の下部にドッキングしたいのですが、各ユーザーのモニターと画面解像度が異なるため、これは難しいです。調べてみると、application.height と object.top を使用してボタン バーを見つけられるようです。問題は、ページを上下にスクロールするときに、スクロール時にマクロを実行する必要があることです。これは可能なのでしょうか?

答え1

図形でこれを行う方法は思いつきませんが、プロジェクトにユーザーフォームを追加し、必要なボタン/ラベル/画像をフォームに追加することができます。デフォルトでは、フォームは Excel シートとは別に実行されるため、スクロールの影響を受けませんが、Excel ウィンドウの上部に残ります。

フォームを追加するには、コードウィンドウを開き、VBAProjectを右クリックして入れる...=>ユーザーフォームApplication.Width、、Application.Heightおよびを使用してApplication.TopApplication.Leftユーザーの Excel ウィンドウが画面上のどこにあるのかを判断し、UserForm1.Widthなどを使用して、必要に応じてフォームの位置を変更し、希望する場所に保持することができます (UserForm1フォーム オブジェクトに名前を付けたものに置き換えます)。

フォームを画面上の特定の場所に開いておくことはできますが、ユーザーはフォームを移動できます (フォームの位置をロックしたことはありません)。フォームの位置を変更するには、どのイベントを監視するかを決定する必要があります (監視するイベントが多すぎたり、監視頻度が多すぎたりすると、ユーザーの全体的なパフォーマンスが低下することに注意してください。

関連情報