[[20031114132928]] 『フォームに最小化ボタンを追加したい』(MOMOKA☆) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『フォームに最小化ボタンを追加したい』(MOMOKA☆)

VBAのユーザーホームを作ったのですが、それに、最小化ボタン(ファイルの右上についてあるもの)をつけることは出来ますか?
宜しくお願い致します。


 MOMOKAさん、こんちわ。
 あんな案配にはでけしまへんけど、CommandBUttonを2個追加して一方を小、も一方
 に大とCaptionを書き換えたらどうでっか?更にBackColorかFontColorを使いコマンド
 ボタンを絞ればきぃにならなくなりますわ。
 それでもあんなんがええっちゅうんやったら、いっぽうのコマンドボタンに「-」もう
 一方に「□」とCaptionを書き換えてみておくんなはれ。
 そして、下のコードをコピペすればお望み?通りになると思いまんねんけどナ。
       ほな...(弥太郎)

 Private Sub CommandButton1_Click()'新しく作ったコマンドボタンNoに書き換え!
        ActiveWindow.WindowState = xlMinimized

 End Sub
 '-----------------------
 Private Sub CommandButton2_Click()'新しく作ったコマンドボタンNoに書き換え!
    ActiveWindow.WindowState = xlMaximized
 End Sub


 最小化ボタンの追加はWindowsAPI使わないとできません
http://park11.wakwak.com/~miko/Excel_Note/11-01_userform.htm#11-01-15
 こちらを参考にすればいいと思います  (りな)

 げっ!?
 これ、ユーザーフォームの最小化でっか?
 そらぁそやわなぁ。フォームでエクセルを最小化せんでもボタンが見えてますもんなぁ
 えらい、はやとちりで...。慌てモンぶりは(りな)さん似でんな、ハハ。
 っちゅうことでMOMOKAさん↑のサイトを開いてみておくんなはれ。
    ほなら...(弥太郎)

みなさんありがとうございます!出来ましたといいたいのですが、VBA初挑戦に近い私には、かなりチンプンカンプンで、またまた詰まってしまいました・・・教えの通りにやったつもりですが、下記部分に色がつき『コンパイルエラー』が出て進めないのです。お手数ですが、解消方法をお教え下さい!宜しくお願い致します♪

Private Declare Function GetWindowLong Lib "user32" _

      Alias "GetWindowLongA" _
      (ByVal hwnd As Long, _
      ByVal nIndex As Long) As Long

 標準モジュールの上部に記述していますか?
 (INA)

 上部とは、一番上に記述ということですよね!?
 一番上に記述しても、同じく
 『コンパイルエラー』
 End Sub,EndFunctionまたはEnd Property以降にはコメントのみが記述できます。
 って出てきちゃうのですが・・・何が間違っているのでしょうか?すみません・・・

 Privateが付いていましたね・・間違えました。ご免なさい。
 以下のコードを対象のユーザーフォームモジュールにコピペしてみて下さい。
 .show するとボタンが表示されるはずです。 (INA)

 Private Declare Function FindWindow _
    Lib "user32" Alias "FindWindowA" _
    (ByVal lpClassName As String _
    , ByVal lpWindowName As String) As Long

 Private Declare Function GetWindowLong _
    Lib "user32" Alias "GetWindowLongA" _
    (ByVal Hwnd As Long, ByVal nIndex As Long) As Long

 Private Declare Sub SetWindowLong _
    Lib "user32" Alias "SetWindowLongA" _
    (ByVal Hwnd As Long, ByVal nIndex As Long _
    , ByVal dwNewLong As Long)

 Private Declare Sub DrawMenuBar _
    Lib "user32" (ByVal Hwnd As Long)

 Private Const GWL_STYLE As Long = -16
 Private Const WS_THICKFRAME As Long = &H40000
 Private Const WS_MAXIMIZEBOX As Long = &H10000
 Private Const WS_MINIMIZEBOX As Long = &H20000

 Private Sub UserForm_Initialize()
    Const fWINDOWSTYLE As Long _
        = WS_THICKFRAME Or WS_MAXIMIZEBOX Or WS_MINIMIZEBOX
    Dim myHwnd As Long
    Dim myWindowLong As Long
    myHwnd = FindWindow("ThunderDFrame", Caption)
    myWindowLong = GetWindowLong(myHwnd, GWL_STYLE)
    SetWindowLong myHwnd, GWL_STYLE, myWindowLong Or fWINDOWSTYLE
    DrawMenuBar myHwnd
 End Sub

キャーキャー感動・感動!!出来てしまいましたぁ♪
 皆様、本当に本当にありがとうございました!
 皆様にご相談すると出来ないことはないぐらいですね。いやいや感動!!
 また宜しくお願い致します♪

喜びもつかの間…(涙)
ユーザーホームを最小化しても、シートを編集することができないんですね…
ユーザーホームを消さないで、シートを編集する方法なんてありますか?
(たとえば、エクセルを開きながら、インターネットを見ていてもインターネットの画面を最小化すると、エクセルが編集できるみたいな感じにしたいのです。)
またまた宜しくお願い致します。

 >ユーザーホームを最小化しても、シートを編集することができないんですね…
 それはユーザーフォームの表示モードによります。
 .show 0 
 で表示してみてください。
 それと showメソッド についてヘルプを読んでみて下さい。
 0 にするとモードレス表示になることが記載されています。
 (INA)

http://www.ae.wakwak.com/cgi-bin/sbox/~efc21/wwwlng.cgi?print+200204/02040162.txt
↑を見たいのですが、エラーで見ることができません。
どうしたら、見れますか?

なんとか出来ました!
いろいろありがとうございました♪

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.