Excelラベル/テキストボックスコントロールの書式設定:VBA/マクロ便利Tips
業務効率化に役立つVBA/マクロのさまざまなTipsをコード例を交えて紹介していきます。今回は、背景色「BackColor」、枠線「BorderStyle」、枠線色「BorderColor」、文字を表示する「Caption」「Text」、文字色「ForeColor」、書体「Font.Name」、文字サイズ「Font.Size」の各プロパティの設定の仕方を解説。
コントロールの「書式」の設定方法は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
「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のように表示される。
ラベルの場合は文字を表示するだけで、フォーム上からの入力や、編集はできない。入力や編集をする場合には、次に解説するテキストボックスコントロールを使用する。
テキストボックスに各「書式」を設定する
ここからは、テキストボックスコントロールの使い方を解説する。大分部の設定はプロパティから行うことが可能だが先にも書いたように、この連載では全てVBAで設定することを前提とする。
テキストボックスに各「書式」を設定する書式
With {テキストボックスのオブジェクト名}
.BackColor = {RGBカラー}
.BorderStyle = {枠線の種類}
.BorderColor = {RGBカラー}
.ForeColor = {RGBカラー}
.Text = {表示する文字}
.Font.Name = {書体}
.Font.Size = {文字サイズ}
End With
ほとんどラベルと同じだが、文字を表示させるプロパティが、ラベルでは「Caption」になっているのに対し、テキストボックスでは、「Text」になっている点に注意してほしい。
図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
「BackColor」には、RGBカラーで「0,0,0」(Black)を指定している。「ForeColor」には、RGBカラーの「255,255,255」(White)を指定した。
実行すると、図3のようになる。「Text」プロパティには何も指定していないので、何も表示されていない。テキストボックスには、フォーム上から入力ができる。
著者プロフィール
薬師寺 国安(やくしじ くにやす) / 薬師寺国安事務所
薬師寺国安事務所代表。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.
関連記事
- スクショをExcelに張り付けるのに役立つ4つのテクニック
システム開発におけるソフトウェアテスト(結合テスト〜システムテスト)において重要視されるエビデンス(作業記録)。前後編の2回にわたって、エビデンスとしてスクリーンショットをキャプチャし、テスト仕様書や納品書に張り付けていく作業を自動化するためのVBA/マクロのテクニックを紹介する。後編は、画像ファイルをシートに張り付け、Excel 2013のメニューからスクショを直に張り付け、画像を縮小し、指定した時間にマクロを実行する方法を解説。 - [Esc]キーによるExcel VBAの実行中断を防止する
ExcelではVBA(Visual Basic for Applications)によってさまざまな処理を自動的に実行できる。しかし、VBAの実行中にユーザーが[Esc]キーあるいは[Ctrl]+[Break]キーを押すと、自動処理が止まってしまう。止めたくない場合は、Application.EnableCancelKeyプロパティの設定を変更する。 - Windows TIPSディレクトリ > プラットフォーム別 > Office > Excel