[[20180517173516]] 『すみません最後です(汗)』(りりー) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『すみません最後です(汗)』(りりー)

ユーザーフォームを移動させるのがわかんないです…。
使ってるプロパティ等の正体不明です。

Application.Height,Width,LeftとUserForm.StartUpPositionなんですが、
ヘルプ見たら
Application.Height,Width
アプリケーションのメイン ウィンドウの高さと幅→アプリケーションのメインウィンドウってエクセルのことですか?
Application.Left,Top
画面の〜端からExcelウィンドウの〜端まで→画面の端ってパソコンの画面の端ですか?(そう見ると変だった)
UserForm.StartUpPosition
Userformを最初に表示するときの位置を表す値→値設定で、1~3わかるけど0が?です。何で3と同じになりますか?

多くてすみません!!
わかる人がいたらお願いします<(_ _)>

< 使用 Excel:unknown、使用 OS:unknown >


StartupPositionプロパティが「0-手動」の場合、TopとLeftのプロパティで指定した座標に表示されますよ。 デフォルトはどちらも0だから、左上になるかと。

「3-Windowsの既定値」というのは、最初は左上ですが、2回目以降はそこから少し右下にずれた位置になるので、手動のときとは違います。
(???) 2018/05/17(木) 17:56


参考になれば...
UserForm1を設定した後...

Declare Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long
Option Explicit

Sub FormPosition()

  Dim Rect&, Hwnd&

  '画面解像度
  Rect& = GetSystemMetrics(0) '横
  Hwnd& = GetSystemMetrics(1) '縦

  UserForm1.Show vbModeless

  '画面中央に
  UserForm1.Left = Rect& / 2 * 0.75 - UserForm1.Width / 2
  UserForm1.Top = Hwnd& / 2 * 0.75 - UserForm1.Height / 2
  MsgBox ("画面解像度 " & Rect& & "*" & Hwnd&)

  'エクセル中央に
  UserForm1.Left = Application.Left + Application.Width / 2 - UserForm1.Width / 2
  UserForm1.Top = Application.Top + Application.Height / 2 - UserForm1.Height / 2
  MsgBox ("Top=" & Application.Top & " Left=" & Application.Left & " Width=" & Application.Width)

  Unload UserForm1

End Sub
(KITA) 2018/05/17(木) 22:14


# 回答ではなく済みません。
 
以前の質問時のタイトルもいかがかと思いますが、
>すみません最後です(汗)
といったラフすぎるタイトルはやめてください。
 
あなたへの個人的なサポートの場所ということではなく、
質疑応答内容を参加者で互いに共有しましょうという趣旨ですから、
タイトルはある程度内容を表すものにして、
閲覧者にも配慮したものにしていただきたいと思います。
これから発言されることがあれば、
少なくとも是非内容を表すものにしてください。

(γ) 2018/05/17(木) 22:59


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.