[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『ユーザフォームの位置』(岡)
こんばんわ岡です
マクロでユーザフォーム立ち上げるようにしたのですが
ど真ん中に表示するところを右端に設定したいんです。
よろしくお願いします。
XP 2002
UserForm のプロパティのStartUpPositionを手動にして、LeftおよびTopの位置を変えてみてはどうでしょうか?
(ken)
(MSE) 横から失礼します。 エクセル画面の高さは Application.Height エクセル画面の幅はApplication.Width で、取得できますよ。 ユーザーフォームを右端真ん中に表示したいなら フォームのActivateイベントに
Private Sub UserForm_Activate() Me.Left = Application.Left + Application.Width - Me.Width Me.Top = Application.Top + (Application.Height - Me.Height) / 2 End Sub
とすれば、良いかと思います。
>ユーザフォームって自分が好きな位置に置いておくと >次からその位置で始まるとかありませんでしたか??
それが、kenさんのおっしゃっている方法です。 ブロパティウィンドウの StartUpPosition を 0-Manual にして、 Left と Top を設定します。 具体的な数値は環境により、違いますが、 私のPCではLeftを530、Topを200程度にすると、 フォームが画面の右端中央に表示されます。 ただし、Application.Windowの大きさにかかわらず、 いつも同じ位置に表示されますけど。
単にイベントの違いなのでは? ブロパティで設定するのとInitializeで設定するのは 同じことなので、こちらのイベントにしてみては? (INA)
みなみなさまどうもありがとうございます。 >単にイベントの違いなのでは? とはどういうことでしょうか??
Activateイベント Activate イベントは、オブジェクトがアクティブ ウィンドウになったときに 発生します。
Initialize イベント オブジェクトが読み込まれたあとで、そのオブジェクトが表示される前に発生します。
ブロパティウィンドウで設定したものは、Initialize イベントで呼び出されるのと同じです。 (INA)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.