タイトル : Re^3: Excelの最大化・最小化ボタン 投稿日 : 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 解決です。 本当にありがとうございました。 ちなみにサイズの固定はできないですよね〜? |