• ベストアンサー

ユーザーフォームの配置について

本を見ながらユーザーフォームを作ってみました。 Showメソッドで表示させると、ページの真ん中に表示されドラッグでいちいち動かさないといけなくなります。 最初からページ中央より2cmほど画面に向かって右にずれた位置に表示させたいのですが方法をご存知でしたら教えていただけないでしょうか。 よろしくお願いします。

noname#121624
noname#121624

質問者が選んだベストアンサー

  • ベストアンサー
  • todo36
  • ベストアンサー率58% (728/1234)
回答No.3

プロパティ画面でStartUpPositionを0 Manualにして LeftとTopを好きな値に設定すればよいのでは? (Win98+Excel97VBA)

noname#121624
質問者

お礼

うまくできました! VBAをはじめたばかりなので、わからない事ばかりです。 プロバティ画面でこんな設定ができるとは……。 勉強になりました。

その他の回答 (2)

  • Chika-F
  • ベストアンサー率60% (6/10)
回答No.2

こんにちは。Chika-Fです。 追加レスです。 上記で何気なく書いたのですが(苦笑) Form_Load時に Form1.Left の値を変数に 取得しておいた方が良いでしょう。 そうしないとフォーカスを失った後に 再度フォーカスした時、現在の位置より 更に右に移動してしまいます。 Public posLeft As Integer Private Sub Form_Load()  posLeft = Form1.Left End Sub Private Sub Form_GotFocus()  Form1.Left = posLeft + 2000 End Sub

noname#121624
質問者

お礼

教えていただいた方法を実行してみました。 思っていた通りにできました。 本当にありがとうございました。

  • Chika-F
  • ベストアンサー率60% (6/10)
回答No.1

こんにちは。Chika-Fです。 Form_GotFocus時に FormObject.Move を使用して 移動させたら如何でしょうか。 簡単な説明ですが分かりますか? 例えば、 デフォルトの表示位置を「画面中央」に設定します。 Private Sub Form_GotFocus()   From1.Move Form1.Left + 2000 END Sub

関連するQ&A

  • ユーザーフォームのHide,showメソッド

    ExcelのVBAでユーザーフォームをHideメソッドで非表示にして、 showで再表示すれば、状態が保存されたまま表示されるはずですが、 ユーザーフォーム表示中またはHideメソッドで隠した後に コマンドボタン等が配置されたシートを削除したときは、showで再表示しても、 ユーザーフォームの状態が保存されていません。 これはどうしてでしょうか? また解決策等ありましたら、教えてください。

  • フォームの表示位置

    いつも拝見させていただき勉強しています。 VB初心者です。 親フォームから子フォームを、 loadメソッドとshowメソッドで、 よびだして表示させようとしているのですが、 フォームの位置をコントロールすることは できるのでしょうか? 画面中央に表示させたいのですが、 左上のほうに表示されてしまいます。

  • ユーザーフォームの表示

    マクロでユーザーフォームを作成しました それをワークシート上に表示させたいのですが方法がわかりません ネットで調べてみるとShowメソッドを使うとありますがやり方がイマイチわからないのです。 どなたかわかりやすく解説して下さい

  • メールフォームの位置を下げる方法

    本を見ながらメールフォームを作ったのですが、 フォームの位置を指定する方法が分かりません。 ALIGN=で右、中央、左の指定が出来ますが、 下に下げる事は出来ません。 今はページ上に表示されています↓ ------ A ------ ↓このように30cmぐらい下に下げたいのですが… ------ A ------ ご存知の方がおられましたらご教示下さい。

  • ユーザーフォームの表示について

    Aというブックを選ぶと車というシートが一番最初にあるのですが、 これをvbaでshowと記述しても一旦他のシートを選んでからでないと 表示されません。 ブックを開いた瞬間にユーザーフォームを表示したいのですが、何か方法はあるでしょうか? どうしてもうまくいきません。。 やりたいことは、ブックを開いたら、フォーム(自分で作ったユーザーフォーム)を開いたときから表示させたいのです。知ってる方がいたら教えてくれると助かるのですが。

  • ユーザーフォーム

    シート1にユーザーフォーム1を、シート2にユーザーフォーム2をそれぞれ表示しておいてHideで非表示にして画面を切り替えて使用してますが、片方のフォームを表示しておくのを忘れたりHideでなくUnroadで終了していたのを忘れていたりしてエラーにしてしまいます。Hideで非表示でなかったらフォームを開かないしShowでもエラーにならないようにするにはどうしたらよろしいでしょうか。VBAは素人ですのでやさしく教えてください。宜しくおねがいします。

  • フォームの開く位置を揃えたい。

    フォームの開く位置の不揃いを改善する方法を知らないので、ご存じの方のご指導をお願いしたいと思います。 「フォームの設定」 フォームは全て「ポップアップ」設定にしています。 「改善したいこと」 コマンドボタンでフォームを開く時、フォーム毎に開く位置が違っていて違和感を感じています。開く位置をパソコン画面中央とかに揃える設定は可能でしょうか。 「実施していること」 フォームを修正した際、フォームを開く位置が極端にずれる時などは、フォームを中央にドラッグさせフォームの「タイトルバー」を「右クリック」し、表示されたメニューから「上書き保存」を選択し実行しています。 以上ですが、宜しくお願いします。

  • ユーザフォームの入力結果の受け取り

    VB6でMsgBoxやInputBoxのフォントを変えたいので、それらしきサブルーチンを作成しました。そのサブルーチンはユーザフォームへの表示内容を設定した後、それを呼び出し(Show method)、押されたコントロールボタンの番号やテキストをパブリック変数に入れて戻っています(Show methodの次のステップに戻りました)。これを引数で受け取るにはどうすればよいのでしょうか(パブリック変数を使いたくないので)。よろしくお願いします。

  • VBAのユーザーフォームの使い方

    皆様、こんにちは。 VBAのユーザーフォームを習い始めた初心者です。本の説明を読んでもユーザーフォームの使い方がよく分かりません。例えば、あるセールをクリックしたら、フォームが表示される、そしてフォームの中にあるコンボボックスのリストの中から選ばれた値が最初に選択したセールに入力されるという使い方がありえますか?申し可能でしたら、コード作成の例をいただけないでしょうか? どうぞよろしくお願いいたします。

  • エクセルのユーザーフォームのスクロールについて

    現在、エクセルのユーザーフォームを作成中ですが、 ユーザーフォームに下記のようにコードを書き込み スクロールをさせていますが、 Private Sub UserForm_Initialize()    Me.Height = ActiveWindow.Height  Me.ScrollBars = fmScrollBarsBoth  Me.ScrollHeight = 655 End Sub  このユーザーフォームにマルチページを使用しているせいか、 ユーザーフォームを呼び出す際に、マルチページのトップ位置から スクロールのカーソルの位置が指定されてしまい、 ユーザーフォームのマルチページより上部がスクロールしないと 絶えず見えないようになってしまっている状況です。  ユーザーフォームを呼び出す際に、このユーザーフォームの 上部(一番上)からスクロールのカーソルが設定できるようにするには どのようにすればよいか教えて頂きますでしょうか? よろしくお願いいたします。