VBAのUserFormを任意の位置に表示するための方法について調べた。
UserFormの表示位置は、デフォルトでは、自動的に決定される。
任意の位置に配置したい場合には、下記の設定を行う。
UserForm.StartUpPosition = 0
UserForm.Top UserForm.Left
スクリーン座標を指定することに注意
Application.Top Application.Left Application.Width Application.Height
座標は、スクリーン座標
単位は "point"
8.7 エクセルウィンドウのサイズ変更
Application.UsableHeight
エクセル内のウインドウ領域(ツールバー部分を除く領域)の高さを取得
Application.UsableWidth
エクセル内のウインドウ領域の幅を取得
ActiveWindow.Top ActiveWindow.Left ActiveWindow.Width ActiveWindow.Height
位置は、ウィンドウ領域左上からの距離 (単位は "point" )
※ Excel内でのウィンドウを最大化しているときはマイナスが入ることに注意
サイズも(単位は "point" )
3.7 ワークブックのサイズ変更
ActiveWindow.PointsToScreenPixelsX(0) ActiveWindow.PointsToScreenPixelsY(0)
Excel内のウィンドウの位置をスクリーン座標で取得
エクセルExcel大事典 VBAマクロ応用講座 スクリーン座標 ポイント ピクセル PointsToScreenPixels
Excelで、マウスの動きに合わせて図形を作成するVBAを組もうとして - BIGLOBEなんでも相談室
Range("**").Top Range("**").Left
A1セルの左上からの距離 (単位はおそらくポイント)
CellScreenPos関数
『ユーザーフォームの表示位置』(きんじ) エクセル Excel [エクセルの学校]
エクセルVBAマクロ - ウインドウの操作 - ウインドウの表示位置とサイズ
Excel質問掲示板(VBA) [Re[9]: ユーザーフォーム表示位置について]
ActiveWindow.PointsToScreenPixels