Form右上の閉じるボタン[ェ]を非表示か無効にする方法がわかりません。
色んなホームページを覗きましたが全くダメです。
思い当たる方法を全て教えてください。
Excelなんですね。バージョンは何をお使いですか?
>色んなホームページを覗きましたが全くダメです。
ExcelのフォームはVBとちょっと違うので、
Excel専門サイトのほうが適していると思います。
なにをどう試して何がどうダメなのか説明できますか?
それ無しで、
>思い当たる方法を全て教えてください。
となると、回答くださる諸氏にばかりに労力を押し付けるようで
いただけませんね。
「〜ではどうですか?」「既にダメでした(理由は説明されない)」の繰り返し
が予想されるので、おそらく放置だと思いますよ。
とりあえず、
http://www.geocities.co.jp/SiliconValley-PaloAlto/1200/html/v_15.htm
でダメな理由を教えてもらえますか?
もしかして、
http://www.h3.dion.ne.jp/~sakatsu/Excel_Tips08.htm#S4
かな とか考えられることが多いんですよ。実際。
先ほど、私も新規質問をさせていただきました。
質問するだけでは、皆様に申し訳ないので、
少しでもお役に立てればと思い発言いたします。
APIを使って実現できます。
具体的には、次のような感じです。
クラス名は、Excelは「XLMAIN」です。
ご参考まで。
<宣言>
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Integer
Private Declare Function GetWindowInteger Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Integer, ByVal nIndex As Integer) As Integer
Private Declare Function SetWindowInteger Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Integer, ByVal nIndex As Integer, ByVal dwNewInteger As Integer) As Integer
Private Declare Function DrawMenuBar Lib "user32" Alias "DrawMenuBar" (ByVal hwnd As Integer) As Integer
Private Const GWL_STYLE = (-16)
Private Const WS_SYSMENU = &H80000
<閉じる・最大化・最小化ボタンを非表示>
Public Shared Sub コントロールメニューを無効にする(ByVal クラス名 As String)
Dim hwnd As Integer
Dim lngNewLong As Integer
Dim rc As Integer
hwnd = FindWindow(クラス名, vbNullString)
lngNewLong = GetWindowInteger(hwnd, GWL_STYLE)
rc = SetWindowInteger(hwnd, GWL_STYLE, lngNewLong And (Not WS_SYSMENU))
rc = DrawMenuBar(hwnd)
End Sub
<閉じる・最大化・最小化ボタンを表示>
Public Shared Sub コントロールメニューを有効にする(ByVal クラス名 As String)
Dim hwnd As Integer
Dim lngNewLong As Integer
Dim rc As Integer
hwnd = FindWindow(クラス名, vbNullString)
lngNewLong = GetWindowInteger(hwnd, GWL_STYLE)
rc = SetWindowInteger(hwnd, GWL_STYLE, lngNewLong Or WS_SYSMENU)
rc = DrawMenuBar(hwnd)
End Sub
ツイート | ![]() |