[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『「VBAについて、Excel2013以降でウィンドウサイズの」[tetsu828] について』(あすぱら)
投稿
[[20171206191137]] 『VBAについて、Excel2013以降でウィンドウサイズの』(tetsu828)
について...
Excel2013以降のSDI化に伴い、新たなウィンドウサイズの固定方法について
これって結論固定するのは不可能なんですかね?
パワーシェルとかならできるとか?
調べても明確な回答は得られませんでした。
ご教授下さい。
< 使用 Excel:Excel2016、使用 OS:Windows10 >
どんなコードで試してみたのですか? 希望する配置を行う動作を マクロ記録してみたらよいのでは? (γ) 2022/10/20(木) 21:54:29
上記でWinAPIを使って、Accessウィンドウのサイズの固定をしています。
これを応用すればできそうに思います。
やってみました。
Option Explicit
Public Declare PtrSafe Function SetWindowPos Lib "user32" _ (ByVal hwnd As LongPtr, _ ByVal hWndInsertAfter As LongPtr, _ ByVal X As Long, ByVal Y As Long, _ ByVal cx As Long, ByVal cy As Long, _ ByVal wFlags As Long) As Long Public Declare PtrSafe Function GetSystemMenu Lib "user32" _ (ByVal hwnd As LongPtr, _ ByVal bRevert As Long) As LongPtr Public Declare PtrSafe Function RemoveMenu Lib "user32" _ (ByVal hMenu As LongPtr, _ ByVal nPosition As Long, _ ByVal wFlags As Long) As Long
Public Const SWP_NOMOVE = &H2 Public Const SWP_NOSIZE = &H1 Public Const HWND_TOP = &H0 Public Const SC_SIZE = &HF000 Public Const SC_MAXIMIZE = &HF030 Public Const SC_CLOSE = &HF060 Public Const SC_RESTORE = &HF120 Public Const MF_BYCOMMAND = &H0&
Public Sub BookWinFixed() Dim hwnd As LongPtr hwnd = Application.hwnd SetWindowPos hwnd, HWND_TOP, 0, 0, 800, 600, SWP_NOMOVE hwnd = GetSystemMenu(hwnd, 0) RemoveMenu hwnd, SC_SIZE, MF_BYCOMMAND End Sub
BookWinFixedを実行すると800×600のサイズに固定されました。
(hatena) 2022/10/20(木) 22:13:19
Top、Left に値を指定することで表示位置を指定できます。 Height、Width の値を増減させるとウィンドウの大きさが変わります
Sub ウィンドウサイズ() Dim wds As Window Set wds = ThisWorkbook.Windows(1) wds.WindowState = xlNormal wds.Height = 718.5 wds.Width = 639 wds.Top = 0 wds.Left = 0 End Sub
これはExcel2000で作成したものでした。 Excel2013で使用できるか不安だったんですけど
(?) 2022/10/21(金) 17:40:50
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.