【VBA】ユーザーフォームのタイトル(キャプション)とサイズをコードで設定する方法

目次

はじめに

VBAのユーザーフォームを作成する際、タイトルバーに表示されるテキスト(キャプション)やフォームの大きさ(幅と高さ)は、通常プロパティウィンドウで設定します。しかし、状況に応じてこれらの値を動的に変更したい場合があります。例えば、「開いたファイル名によってフォームのタイトルを変えたい」「処理するデータ量に応じてフォームのサイズを調整したい」といったケースです。

VBAコードを使えば、ユーザーフォームを表示する直前に、これらのプロパティを簡単に設定・変更することができます。この記事では、ユーザーフォームのタイトルとサイズをVBAで動的に設定するための基本的な方法を解説します。


タイトルとサイズを設定するVBAサンプルコード

このマクロは、DataEntryForm という名前のユーザーフォームを対象に、タイトル、幅、高さを設定してから表示します。

通常、フォームを表示するマクロは、標準モジュールに記述します。

標準モジュールの完成コード

' ユーザーフォームのプロパティを設定して表示する
Sub ShowCustomizedForm()

    ' Withブロックで対象のフォームを明示
    With DataEntryForm
    
        ' .Caption プロパティでタイトルを設定
        .Caption = "データ入力フォーム Ver. 1.2"
        
        ' .Width プロパティでフォームの幅をポイント単位で設定
        .Width = 300
        
        ' .Height プロパティでフォームの高さをポイント単位で設定
        .Height = 250
        
        ' 設定を反映してフォームを表示
        .Show
        
    End With

End Sub

使い方

  1. VBEで、表示したいユーザーフォームの (Name) プロパティが DataEntryForm であることを確認します。
  2. 標準モジュールに上記の ShowCustomizedForm マクロを貼り付けます。
  3. このマクロを実行すると、指定したタイトルとサイズでユーザーフォームが表示されます。

コードの解説

With DataEntryForm ... End With

With ステートメントを使うことで、対象のオブジェクト(ここでは DataEntryForm)を一度指定すれば、それ以降 .Caption のように . からプロパティ名を記述するだけで済み、コードがすっきりと読みやすくなります。

.Caption = "データ入力フォーム Ver. 1.2"

.Caption プロパティは、フォームのタイトルバーに表示される文字列を制御します。ここに変数を使って .Caption = ActiveWorkbook.Name & " のデータ入力" のように設定すれば、状況に応じた動的なタイトルを表示できます。

.Width = 300.Height = 250

  • .Width: フォームの幅を設定します。
  • .Height: フォームの高さを設定します。

これらの単位はポイントです。1ポイントは約0.35mmに相当します。プロパティウィンドウで設定するのと同じ単位なので、最適なサイズをプロパティウィンドウで探してから、その数値をコードに反映させると簡単です。


まとめ

今回は、VBAコードを使ってユーザーフォームのタイトルとサイズを動的に設定する方法を解説しました。

  • タイトル(キャプション)の変更は .Caption プロパティ
  • 幅の変更は .Width プロパティ
  • 高さの変更は .Height プロパティ

これらのプロパティを フォーム名.Show の前に設定するだけで、より柔軟で見栄えの良いユーザーフォームを提供することができます。ぜひ、ご自身のツール開発に役立ててみてください。

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

この記事を書いた人

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

目次