タイトル | : Re^3: Excelの最大化・最小化ボタン |
記事No | : 10007 |
投稿日 | : 2010/03/17(Wed) 13:45 |
投稿者 | : はる |
できました! 花ちゃんさんのご指摘どおり、VB.NET用にAPI関数を変換していなかったからでした。 ご指摘ありがとうございました!
以下、修正したコードです。
'ウィンドウハンドルを取得する関数 <System.Runtime.InteropServices.DllImport("user32.dll", CharSet:=System.Runtime.InteropServices.CharSet.Auto)> _ Shared Function FindWindow( _ ByVal lpClassName As String, _ ByVal lpWindowName As String) As IntPtr End Function
'ウィンドウに関する情報を返す関数 <DllImport("user32.dll", CharSet:=CharSet.Auto)> _ Public Shared Function GetWindowLong(ByVal hWnd As Integer, ByVal nIndex As Integer) As Integer End Function
'ウィンドウの属性を変更する関数 <DllImport("user32.dll")> _ Private Shared Function SetWindowLong( _ ByVal hWnd As IntPtr, _ ByVal nIndex As Integer, _ ByVal dwNewLong As IntPtr) As Integer End Function
'メニューバーを描画する関数 <DllImport("user32.dll")> _ Shared Function DrawMenuBar(ByVal hwnd As IntPtr) As Boolean End Function
'最大化ボタン Public Const WS_MAXIMIZEBOX As Integer = &H10000
'最小化ボタン Public Const WS_MINIMIZEBOX As Integer = &H20000
'スタイルを取得する定数 Public Const GWL_STYLE As Integer = -16
'非表示用のコード Public Shared Sub BoxHide(ByVal sAppCaption As String)
'Excelのハンドル Dim hWnd As IntPtr = FindWindow(Nothing, sAppCaption)
'最小化・最大化ボタンの消去 Dim wStyle As Integer = GetWindowLong(hWnd, GWL_STYLE)
SetWindowLong(hWnd, GWL_STYLE, wStyle And (Not WS_MAXIMIZEBOX) And (Not WS_MINIMIZEBOX))
'メニュー表示し直し DrawMenuBar(hWnd)
End Sub
解決です。 本当にありがとうございました。
ちなみにサイズの固定はできないですよね〜?
|