「みんな教えて! 選手権!!」開催のお知らせ

お世話になります。

エクセルで、上下に長いのでスクロールさせて使うユーザーフォームを作成しています。

このユーザーフォームが、ホイールでスクロールできないので、できるようにしたいのですがどうしたら良いでしょうか?

フリーソフトはインストールできない環境ですので、できればVBAで行いたいのですが方法はありますでしょうか。
よろしくお願いします。

A 回答 (1件)

こんにちは。

KenKen_SP です。

>ホイールでスクロールできないので、できるようにしたいのですが
>どうしたら良いでしょうか?

VBA のユーザーフォームはコントロールを含めてマウスホイールには
対応していません。

したがって、フリーソフトを使うか、どうしても Excel 単体で実現し
ようと思えば、下記のような方法をとることになります。

簡単に方法を説明すると、、、

ユーザーフォームをサブクラス化して、WM_MOUSEWHEEL メッセージを
をフックします。そして、コールバックプロシージャ内で wParam 値
を使ってユーザーフォームの ScrollTop プロパティーを操作します。

ただ、、

この方法は、OS の発するメッセージを横取り(フック)して、そこに
独自の処理を挟み込むわけですから、制御の仕方を間違えると最悪 OS
ごとハングアップしかねません。

難易度は高いのですが、ご希望があれば、サンプルコードを書きます。
どうでしょうか?
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
お礼が遅くなりましてすみません。
ユーザーの方にアンケートしたところ、何か別の方策をたてる方がいいということでしたので、また代案を考えることになりました。
とても難しいということが分かって勉強になりました。
どうもありがとうございました。

お礼日時:2005/11/18 12:04

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報

このQ&Aを見た人がよく見るQ&A