【VBA】ユーザーフォームのラベルの書式(文字/色/サイズ)をコードで設定する方法

目次

はじめに

VBAのユーザーフォームで、ラベルは単なる静的なテキストを表示するだけでなく、ツールのタイトルや、処理の状況を伝えるステータスメッセージとして重要な役割を果たします。

通常、ラベルの書式はプロパティウィンドウで設定しますが、VBAコードで動的に変更することで、よりリッチで分かりやすいユーザーインターフェースを作成できます。例えば、処理が成功したらラベルを緑色に、失敗したら赤色に変える、といった表現が可能です。

この記事では、ユーザーフォームのラベルコントロールの様々な書式(表示テキスト、フォント、文字色、背景色など)をVBAで設定するための基本的な方法を、プロパティごとに分かりやすく解説します。


ラベルの書式を設定するVBAサンプルコード

このマクロは、DisplayForm という名前のユーザーフォーム上にある TitleLabel という名前のラベルを、見出しとして見栄え良く整形します。

このコードは、フォームが初期化される UserForm_Initialize() イベント内や、フォームを表示するマクロの中で フォーム名.Show の前に記述します。

ユーザーフォームのコード

' フォームが初期化されるときに実行されるイベント
Private Sub UserForm_Initialize()
    
    ' Withブロックで対象のラベルを明示
    With Me.TitleLabel
    
        ' .Caption: 表示するテキストを設定
        .Caption = "ようこそ!"
        
        ' .Fontオブジェクト: フォント関連の書式を設定
        .Font.Name = "游ゴシック" ' フォント名を指定
        .Font.Bold = True        ' 太字にする
        .Font.Size = 16          ' フォントサイズをポイントで指定
        
        ' .ForeColor: 文字の色を設定
        .ForeColor = RGB(255, 255, 255) ' RGB関数で白色を指定
        
        ' .BackColor: 背景の色を設定
        .BackColor = RGB(6, 128, 67)    ' RGB関数で濃い緑色を指定
        
        ' .TextAlign: テキストの水平方向の配置を設定
        .TextAlign = fmTextAlignCenter ' 中央揃え
        
        ' .Height / .Width: コントロールのサイズを設定
        .Height = 30
        .Width = 250
        
    End With
    
End Sub

実行前の準備

  1. DisplayForm という名前のユーザーフォームを作成します。
  2. フォーム上に「ラベル」コントロールを配置し、プロパティウィンドウで (Name)TitleLabel に変更します。
  3. フォームのコードモジュールに上記の UserForm_Initialize プロシージャを貼り付け、フォームを表示すると、デザインが適用されたラベルが表示されます。

コード(プロパティ)の解説

.Caption

ラベルに表示されるテキストそのものを設定します。 "処理が完了しました" のように、状況に応じて文字列を動的に変更できます。

.Font

フォントに関する設定は、.Font オブジェクトを通じて行います。

  • .Font.Name: "MS Pゴシック""Yu Gothic UI" など、PCにインストールされているフォント名を文字列で指定します。
  • .Font.Bold: True で太字、False で標準になります。
  • .Font.Size: フォントの大きさをポイント単位で指定します。

.ForeColor.BackColor

  • .ForeColor: 前景色、つまり文字の色を設定します。
  • .BackColor: 背景色を設定します。 色の指定には vbRedvbBlue といったVBAの定数も使えますが、RGB(赤, 緑, 青) 関数を使うと、より多彩な色を表現できます。各値は0から255の範囲で指定します。

.TextAlign

ラベル内のテキストの水平方向の配置を設定します。

  • fmTextAlignLeft: 左揃え(デフォルト)
  • fmTextAlignCenter: 中央揃え
  • fmTextAlignRight: 右揃え

fm... で始まるこれらの値は、fm20.dll ライブラリで定義されているVBAの定数です。


まとめ

今回は、VBAコードを使ってユーザーフォームのラベルの書式を自由に設定する方法を解説しました。

  • .Caption: 表示テキスト
  • .Font: フォントの種類、太さ、サイズ
  • .ForeColor: 文字色
  • .BackColor: 背景色
  • .TextAlign: 水平配置

これらのプロパティを組み合わせることで、単調になりがちなユーザーフォームを、視覚的に分かりやすく、デザイン性の高いものに仕上げることができます。ぜひ、ユーザーにとって使いやすい画面作りにご活用ください。

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

この記事を書いた人

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

目次