Excelラベル/テキストボックスコントロールの書式設定VBA/マクロ便利Tips

業務効率化に役立つVBA/マクロのさまざまなTipsをコード例を交えて紹介していきます。今回は、背景色「BackColor」、枠線「BorderStyle」、枠線色「BorderColor」、文字を表示する「Caption」「Text」、文字色「ForeColor」、書体「Font.Name」、文字サイズ「Font.Size」の各プロパティの設定の仕方を解説。

» 2014年11月04日 18時00分 公開
[薬師寺国安PROJECT KySS]
「VBA/マクロ便利Tips」のインデックス

連載目次

※本Tipsの環境:Windows 8.1 Enterprise(64ビット)+Excel 2013


コントロールの「書式」の設定方法はVBAに必須

 今回はラベルコントロールやテキストボックスコントロールの、「書式」(この場合は「プロパティ」の意味)設定についてのTipsを紹介する。

 ラベルやテキストボックスの「書式」の設定方法は、今後VBAを書いていく上で、必要になってくる処理なので、今後のためにも、読者の皆さんには設定方法をぜひ覚えておいていただきたい。

ラベルコントロールの各「書式」設定

 UserForm1は、Tips「フォームの表示位置を指定する」で作成したフォームを使用する。このフォームにツールボックスからラベルを1個配置する。

 このラベルに背景色を指定する「BackColor」、枠線を表示する「BorderStyle」、枠線の色を指定する「BorderColor」、文字を表示する「Caption」、文字色を指定する「ForeColor」、文字の種類を指定する「Font」プロパティを設定してみる。

 「書式」設定は全てラベルのプロパティより指定できる。VBAから指定する場合の書式(この場合は「書き方」の意味)は下記のようになる。

ラベルに各「書式」設定をする書式

With {ラベルのオブジェクト名}

 .BackColor = {RGBカラー}

 .BorderStyle = {枠線の種類}

 .BorderColor = {RGBカラー}

 .ForeColor = {RGBカラー}

 .Caption = {表示する文字}

 .Font.Name = {書体}

 .Font.Size = {文字サイズ}

End With


 プロパティから設定する場合は、プロパティの値を選択すると、「▼アイコン」が表示されるので、これをクリックして選択するとよい。この連載では、VBAで指定する場合を解説する。

 各プロパティを設定するコードはリスト1になる。「UserForm」の「Activate」イベント内に記述する。これは、「フォーム」がアクティブになった時の処理だ。

Private Sub UserForm_Activate()
  With Label1
    .BackColor = RGB(0, 0, 255)
    .BorderStyle = fmBorderStyleSingle
    .BorderColor = RGB(255, 0, 0)
    .ForeColor = RGB(255, 255, 0)
    .Caption = “薬師寺国安事務所”
    .Font.Name = “Meiryo UI”
    .Font.Size = 24
  End With
End Sub
リスト1 ラベルの各プロパティを設定するコード

 「BackColor」は、RGB関数で「0,0,255」(Blue)を指定している。「BorderStyle」は、VBE(Visual Basic Editor)のインテリセンス機能から選択が可能で、枠線を表示する「fmBorderStyleSingle」を選択する。「BoderColor」には、RGB関数の「255,0,0」(Red)を指定、「ForeColor」には、RGB関数の「255,255,0」(Yellow)を指定している。

 RGB関数については「RGB関数(Visual Basic)- MSDN」を参照してほしい。

 VBEメニューの[実行]→[Sub/ユーザーフォームの実行]を選択して実行すると図1のように表示される。

図1 ラベルの各プロパティを設定した

 ラベルの場合は文字を表示するだけで、フォーム上からの入力や、編集はできない。入力や編集をする場合には、次に解説するテキストボックスコントロールを使用する。

テキストボックスに各「書式」を設定する

 ここからは、テキストボックスコントロールの使い方を解説する。大分部の設定はプロパティから行うことが可能だが先にも書いたように、この連載では全てVBAで設定することを前提とする。

テキストボックスに各「書式」を設定する書式

With {テキストボックスのオブジェクト名}

 .BackColor = {RGBカラー}

 .BorderStyle = {枠線の種類}

 .BorderColor = {RGBカラー}

 .ForeColor = {RGBカラー}

 .Text = {表示する文字}

 .Font.Name = {書体}

 .Font.Size = {文字サイズ}

End With


 ほとんどラベルと同じだが、文字を表示させるプロパティが、ラベルでは「Caption」になっているのに対し、テキストボックスでは、「Text」になっている点に注意してほしい。

 図2のようにテキストボックスコントロールを配置し、プロパティの[オブジェクト名]を「入力テキストボックス」としておく。

図2 テキストボックスを配置し、[オブジェクト名]を「入力テキストボックス」とした

 「入力テキストボックス」に、各書式を設定するコードはリスト2になる。ラベルのときと同じようにUserFormがActivateになったときに処理を記述する。

  With 入力テキストボックス
    .BackColor = RGB(0, 0, 0)
    .BorderStyle = fmBorderStyleSingle
    .BorderColor = RGB(255, 0, 0)
    .ForeColor = RGB(255, 255, 255)
    .Font.Name = “Meiryo UI”
    .Font.Size = 24
  End With
リスト2 「入力テキストボックス」のプロパティを設定するコード(リスト1のUserForm_Activateの中に追加)

 「BackColor」には、RGBカラーで「0,0,0」(Black)を指定している。「ForeColor」には、RGBカラーの「255,255,255」(White)を指定した。

 実行すると、図3のようになる。「Text」プロパティには何も指定していないので、何も表示されていない。テキストボックスには、フォーム上から入力ができる。

図3 「入力テキストボックス」の「書式」を設定し、入力テキストボックスに、「Excel VBA」と入力した

著者プロフィール

薬師寺 国安(やくしじ くにやす) / 薬師寺国安事務所

薬師寺国安事務所代表。Visual Basicプログラミングと、マイクロソフト系の技術をテーマとした、書籍や記事の執筆を行う。

1950年生まれ。事務系のサラリーマンだった40歳から趣味でプログラミングを始め、1996年より独学でActiveXに取り組む。

1997年に薬師寺聖とコラボレーション・ユニット「PROJECT KySS」を結成。

2003年よりフリーになり、PROJECT KySSの活動に本格的に参加。.NETやRIAに関する書籍や記事を多数執筆する傍ら、受託案件のプログラミングも手掛ける。

Windows Phoneアプリ開発を経て、現在はWindowsストアアプリを多数公開中。

Microsoft MVP for Development Platforms - Client App Dev (Oct 2003-Sep 2012)。

Microsoft MVP for Development Platforms - Windows Phone Development(Oct 2012-Sep 2013)。

Microsoft MVP for Development Platforms - Client Development(Oct 2013-Sep 2014)。

Microsoft MVP for Development Platforms-Windows Platform Development (Oct 2014-Sep 2015)。


Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。