- ベストアンサー
ユーザーフォームをホイールでスクロールする方法(Excel2000VBA)
お世話になります。 エクセルで、上下に長いのでスクロールさせて使うユーザーフォームを作成しています。 このユーザーフォームが、ホイールでスクロールできないので、できるようにしたいのですがどうしたら良いでしょうか? フリーソフトはインストールできない環境ですので、できればVBAで行いたいのですが方法はありますでしょうか。 よろしくお願いします。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。KenKen_SP です。 >ホイールでスクロールできないので、できるようにしたいのですが >どうしたら良いでしょうか? VBA のユーザーフォームはコントロールを含めてマウスホイールには 対応していません。 したがって、フリーソフトを使うか、どうしても Excel 単体で実現し ようと思えば、下記のような方法をとることになります。 簡単に方法を説明すると、、、 ユーザーフォームをサブクラス化して、WM_MOUSEWHEEL メッセージを をフックします。そして、コールバックプロシージャ内で wParam 値 を使ってユーザーフォームの ScrollTop プロパティーを操作します。 ただ、、 この方法は、OS の発するメッセージを横取り(フック)して、そこに 独自の処理を挟み込むわけですから、制御の仕方を間違えると最悪 OS ごとハングアップしかねません。 難易度は高いのですが、ご希望があれば、サンプルコードを書きます。 どうでしょうか?
お礼
ご回答ありがとうございます。 お礼が遅くなりましてすみません。 ユーザーの方にアンケートしたところ、何か別の方策をたてる方がいいということでしたので、また代案を考えることになりました。 とても難しいということが分かって勉強になりました。 どうもありがとうございました。