【VBA】ユーザーフォームの表示位置を指定する方法 (中央/手動)

目次

はじめに

VBAで作成したユーザーフォームは、デフォルト設定のままだと、意図しない場所に表示されてしまうことがあります。ツールの操作性を向上させるためには、フォームを常に画面の中央や、Excelウィンドウの近くなど、分かりやすい位置に表示させることが重要です。

VBAでは、ユーザーフォームの StartUpPosition プロパティを変更することで、フォームの初期表示位置を簡単にコントロールできます。この記事では、StartUpPosition の各設定と、ピクセル単位で表示位置を精密に指定する方法を分かりやすく解説します。


StartUpPosition プロパティによる自動設定

StartUpPosition プロパティは、フォームがどこに表示されるかを決める最も簡単な方法です。この設定は、ユーザーフォームのプロパティウィンドウで変更することも、VBAコードで直接指定することもできます。

設定値定数説明
0vbStartUpManual手動.Top.Left プロパティで表示位置を自分で指定します。(後述)
1vbStartUpOwnerオーナーの中央。Excelウィンドウ(親フォーム)の中央に表示されます。(デフォルト)
2vbStartUpScreen画面の中央。PCモニターの画面全体の中心に表示されます。
3vbStartUpWindowsDefaultWindowsの規定値。Windowsが決定した位置に表示されます。

Google スプレッドシートにエクスポート

サンプルコード

以下のマクロは、MainForm という名前のユーザーフォームを、それぞれの StartUpPosition 設定で表示します。

' --- 1. Excelウィンドウの中央に表示 ---
Sub ShowFormAtCenterOwner()
    With MainForm
        .StartUpPosition = 1 ' オーナーの中央 (vbStartUpOwner)
        .Show
    End With
End Sub

' --- 2. 画面全体の中心に表示 ---
Sub ShowFormAtCenterScreen()
    With MainForm
        .StartUpPosition = 2 ' 画面の中央 (vbStartUpScreen)
        .Show
    End With
End Sub

通常は、画面全体の中心に表示される 2 (vbStartUpScreen) が、利用者にとって最も分かりやすく、おすすめです。


StartUpPosition = 0 で表示位置を手動設定する

StartUpPosition0 (vbStartUpManual) に設定すると、フォームの .Top (上からの位置) と .Left (左からの位置) プロパティを使って、表示位置をピクセル単位で自由に決めることができます。

サンプルコード

以下のマクロは、MainForm をExcelウィンドウの左上から少し離れた位置(上へ100ピクセル, 左へ200ピクセル)に表示します。

' フォームの表示位置を手動で指定する
Sub ShowFormAtManualPosition()

    With MainForm
        ' まず、手動設定モードにする
        .StartUpPosition = 0 ' 手動 (vbStartUpManual)
        
        ' 表示位置をピクセルで指定
        .Top = Application.Top + 100  ' Excelウィンドウの上端から100ピクセル下
        .Left = Application.Left + 200 ' Excelウィンドウの左端から200ピクセル右
        
        ' フォームを表示
        .Show
    End With

End Sub

コードの解説

  • .Top = Application.Top + 100: フォームの上端の位置(.Top)を、Excelアプリケーション自体のウィンドウの上端位置(Application.Top)を基準に、100 ピクセル下に設定しています。
  • .Left = Application.Left + 200: 同様に、フォームの左端の位置(.Left)を、Excelウィンドウの左端位置(Application.Left)から 200 ピクセル右に設定しています。

この方法を使えば、マルチモニター環境でも、意図したモニターのExcelウィンドウの近くにフォームを表示させることができます。


まとめ

今回は、ユーザーフォームの表示位置をコントロールするための方法をご紹介しました。

  • StartUpPosition プロパティを使うのが基本。特に 2 (画面中央) が便利。
  • 自由な位置に表示したい場合は、StartUpPosition0 (手動) に設定し、.Top.Left プロパティで座標を指定する。

フォームの表示位置は、ツールの使いやすさに直結する重要な要素です。ユーザーが直感的に操作できるよう、ぜひこのテクニックを活用して、最適な位置にフォームを表示させてみてください。

副業から独立まで「稼げる」Webスキルを習得する(PR)

ここまで読んでいただきありがとうございます。 最後に宣伝をさせてください。

「副業を始めたいが、何から手をつければいいかわからない」「独学でスキルはついたが、収益化できていない」という悩みを持つ方には、マンツーマン指導のWebスクール**「メイカラ」**が適しています。

このスクールは、単に技術を教えるだけでなく、**「副業として具体的にどう稼ぐか」**という実務直結のノウハウ提供に特化している点が特徴です。

講師陣は、実際に「副業Webライターから1年で独立して月収100万円」を達成したプロや、現役で利益を出し続けているブロガーなど、確かな実績を持つプレイヤーのみで構成されています。そのため、机上の空論ではない、現場で通用する戦術を学ぶことができます。

副業に特化した強み

  • 最短ルートの提示: 未経験からでも実績を出せるよう、マンツーマンで指導。
  • AI活用の習得: 副業の時間対効果を最大化するための、正しいAI活用スキルも網羅。
  • 案件獲得のチャンス: 運営がWebマーケティング会社であるため、実力次第で社内案件の紹介など、仕事に直結する可能性があります。

受講者の多くは、「在宅でできる仕事を探している」「副業を頑張りたい」という20代・30代・40代が中心です。

受講前には、講師による無料説明が行われます。無理な勧誘はなく、自分に合った副業スタイルやプランを相談できるため、まずは話を聞いてみることから始めてみてはいかがでしょうか。

ブログで稼ぎたいなら「メイカラ」

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次