邪魔なユーザーフォームを透明に!(1/2 準備編)


ワークシート上にユーザーフォームを表示させると、ワークシートが部分的に隠れて見えなくなります。

隠れた部分を見たい場合は、ユーザーフォームをドラッグして移動させないといけません。これって結構めんどうですよね。

そこで、今回はユーザーフォームを透明にする方法をご紹介します。サンプルでは、スライダーを使って動的に透明度を変更できるようにしてあります。スライダーの代わりにスピンボタンでもOKですよ。

まず、Microsoft Windows Common Controls 6.0に参照設定してください。

Microsoft Windows Common Controls 6.0が見つからない場合は、MSCOMCTL.OCX がインストールされていないか、DLLが参照されないエラーが原因です。(解決法はこちら)

無事Microsoft Windows Common Controls 6.0の参照設定が終わったら、

コントロールツールボックスの中ืืにあるスライダーを選んでください。見つからない場合は、右クリックメニューからその他のコントロールを選び、追加してください。

これで準備完了です。

次に、ユーザーフォームを挿入して、その上にスライダーコントロールを配置します。

Slider1のプロパティを設定します。

プロパティウインドウのMAXとMINをそれぞれ8と0に設定してください。

ユーザーフォームの透明度は、Win32API関数に0-255の値を渡して指定します(255が透明度0)。

この数値を決めるのに今回はスライダーを使います。例えば、スライダーの値が1なら255×90%という具合です。スライダーの最大値を10(透明度100%)にしてしまうと、ユーザーフォームが全く見えなくなくなり元に戻すのに苦労するので、ここでは8くらいにしておきます。

準備編はここまでです。続きは実装編で!

#マクロ #ExcelVBA #ユーザーフォーム #Slider