
いつもお世話になっております(標準モジュール)
ネットで検索したらユーザーフォームを半透明
するコードをみつけました。
だけど、なぜかユーザーフォームに
とりつけてあるコマンドボタン・リストボックスなどが
きえてしまいます。
消えない方法のやり方おしえてくれませんでしょうか
Public Declare Function FindWindow Lib "user32" _
Alias "FindWindowA" _
(ByVal classname As Any, ByVal winname As Any) As Long
Public Declare Function SetWindowLong Lib "user32" _
Alias "SetWindowLongA" _
(ByVal hwnd&, ByVal idx&, ByVal style&) As Long
Public Declare Function GetWindowLong Lib "user32" _
Alias "GetWindowLongA" _
(ByVal hwnd&, ByVal idx&) As Long
Public Declare Function SetLayeredWindowAttributes Lib "user32" _
(ByVal hwnd&, ByVal crKey As Long, _
ByVal bAlpha As Long, ByVal dwFlags As Long) As Long
Public Const GWL_EXSTYLE = (-20)
Public Const WS_EX_TOOLWINDOW = &H80
Public Const WS_EX_LAYERED = &H80000
Public Const LWA_COLORKEY = 1
Public Const LWA_ALPHA = 255
Sub test()
UserForm1.Show
End Sub
(フォーム)
Private Sub UserForm_Initialize()
hwnd& = FindWindow("ThunderDFrame", Me.Caption)
If hwnd& <> 0& Then
SetWindowLong hwnd&, GWL_EXSTYLE, _
GetWindowLong(hwnd&, GWL_EXSTYLE) Or WS_EX_LAYERED
SetLayeredWindowAttributes hwnd&, 0, 192, LWA_ALPHA
End If
End Sub
わかりました。
恐らくConst GWL_EXSTYLE = (-100)この数値を変えたらできました。
透明になっていまうとだめなんですね
恐らく
ありがとうございました。
No.1
- 回答日時:
私が検証した物。
まずここのコードをユーザーフォームモジュールに書き込みます。
http://www.excel.studio-kazu.jp/kw/2018011721014 …
ここでの注意。
ユーザーフォームのバックカラーを『システム色ではなく、パレット色から選択したものにしておいて』に従って変更。
ただし以下の問題がありそうです。(うちのOfficeは64Bitなので)
https://excel-databace.hatenablog.com/entry/64bi …
なので書き込んだユーザーフォームモジュールコードの修正をしました。
Private Declare PtrSafe Function~ と PtrSafe を追加。

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ユーザーフォームを表示中にシ...
-
ユーザーフォーム上に現在日時...
-
クリックイベントなのに、2回ク...
-
Form_Load と Form_Activate の...
-
Microsoft Formsの「個人情報や...
-
VB.NETでフォームロード中のエ...
-
VBAでユーザーフォームを再表示...
-
テキストボックス入力データの...
-
C#で起動時のフォームを非表示...
-
ExcelVBAのユーザーフォームの...
-
フォームのテキストボックスな...
-
VBAで画像を表示する方法
-
Accessで、一つのフォーム画面...
-
【VBAユーザーフォームで閉じる...
-
現在開いている全てのフォーム...
-
VBのフォームをスクロールさせ...
-
ユーザーフォームのラベルに時...
-
VBAのテキストフォームの折り返...
-
VB6でMDIフォームを使用してい...
-
エクセルのチェックボックスの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ユーザーフォームを表示中にシ...
-
ExcelVBAのユーザーフォームの...
-
Microsoft Formsの「個人情報や...
-
Form_Load と Form_Activate の...
-
VBAでユーザーフォームを再表示...
-
クリックイベントなのに、2回ク...
-
ユーザーフォーム上に現在日時...
-
テキストボックス入力データの...
-
VBAのテキストフォームの折り返...
-
ACCESSのフォーム、開くんです...
-
Hideについて(.NET)
-
ユーザーフォームのテキストボ...
-
エクセルVBAのフォームを最...
-
モーダルフォームとモードレス...
-
EXCEL VBA ユーザーフォームの...
-
フォームのテキストボックスな...
-
コントロールの存在確認
-
パソコンの画面に合わせてユー...
-
フォームウィンドウを最前面に...
-
Accessで、一つのフォーム画面...
おすすめ情報
ご連絡遅れて申し訳ありません
はい、半透明でした。
いつも画面をコピー?スクリーンショットみたいなので
やったらうつらなかったので、
画像添付できませんでした。
いつも有難うございます。
『システム色ではなく、パレット色から選択していきました。
いつも有難うございます。
少し問題がでました。
×でuserformがとじれられないのと、
移動ができませんでした。
UserForm1.Show vbModeless
を追加しましたが、無理でした。
すこし、検索致します。
有難うございます。