皆様こんにちは、ノグチです。
エクセルのユーザーフォームで、フォームを作って動かしてみるまでを目標に、連載記事でフォームやコントロールのプロパティ、イベント、メソッドをご紹介しています。
前回は、ユーザーフォームに追加したコンボボックスに、値をセットする方法をご紹介しました。
今回の記事では、チェックボックスをユーザーフォームに追加する方法とプロパティ、イベントをご紹介していきますよ!
前回までのおさらい
前回までに作成したユーザーフォームがこちらです。
前回記事では、フォームの右上部分にあるコンボボックスに、値をセットする2つの方法をご紹介したのでした。
今回は、こちらのフォームにチェックボックスを追加していきます。
チェックボックスをユーザーフォームに追加する
では早速、ユーザーフォームにチェックボックスを追加していきましょう。
まず、ツールボックスからチェックボックスのアイコンをクリックします。
そして、フォーム上のチェックボックスを配置したい場所をドラッグすれば…
この通り、チェックボックスが追加されます。
しかし、このままでは他のコントロールと比べると、文字が大きいですね。
プロパティシートを開いて、文字の大きさなどの設定をしていきましょう。
オブジェクト名を分り易い名前に変更する
プロパティシートを開いたついでに、他のコントロール同様、このチェックボックスも後々VBAで操作しますので、分り易いオブジェクト名をつけておきましょう。
コントロールのオブジェクト名は、プロパティシートの一番上にある「(オブジェクト名)」の値で設定できるのでしたね。
今回追加したチェックボックスには、「ChkYN」というオブジェクト名をつけておきます。
チェックボックスのプロパティ
文字の大きさやフォントを設定する:Fontプロパティ
まずは、文字の大きさやフォントを設定することができるFontプロパティで、文字の大きさを他のコントロールとあわせます。
テキストボックスの記事でご紹介した、Fontプロパティと全く同じ設定方法です。
プロパティシートのFontプロパティの値の右にあるボタンをクリックすると、フォントの設定画面を開くことができ、そこでチェックボックスの表記名の文字サイズを変えることができます。
今回は、他のコントロールと合わせて、文字のサイズを9にしておきました。
チェックボックスのテキストを設定する:Captionプロパティ
お次は、チェックボックスのテキストを設定するCaptionプロパティです。
このプロパティの値を変えると、ユーザーフォーム上でチェックボックスの隣に表示されるテキストを変えることができますよ。
初期値には「ChekBox1」が設定されていますね。
この値を、表記させたいテキストに変更します。
するとこのように、このプロパティで指定した値が、チェックボックスの隣に表示されます。
チェックボックスの値を取得・設定する:Valueプロパティ
お次は、VBAでチェックボックスを操作するなら必ずお世話になるであろう、チェックボックスの値を取得・設定できるValueプロパティです。
このプロパティは、チェックボックスにチェックがついていればTrueを、ついていなければFalseを返してくれます。
また、VBAでチェックボックスのチェックの有無を操作したい場合は、True・Falseのいずれかを指定することになります。
Changeイベントでチェックボックスの値が変わったらメッセージを表示する
プロパティをご紹介したところで、今度はチェックボックスのイベントを使ってみましょう。
チェックボックスの値が変わったら=チェックが付けられた又は外されたら、メッセージを表示させてみます。
この、チェックボックスの値が変わった時に何らかの処理をさせたい場合は、チェックボックスのChangeイベントを使います。
Private Sub chkYN_Change() If chkYN.Value = True Then MsgBox "チェックが付けられました!" Else MsgBox "チェックが外されました!" End If End Sub
チェックボックスにチェックがつけられたら、「チェックが付けられました!」というメッセージが表示され、チェックが外されたら「チェックが外されました!」というメッセージが表示されるコードです。
早速試してみましょう。
チェックボックスにチェックを入れると…
この通り、メッセージが表示されましたね。
チェックボックス自体の大きさは変えられない
ここまで、チェックボックスのプロパティやイベントをご紹介してきましたが、残念なお知らせが1つ。
チェックボックスとテキストを合わせた範囲の大きさは変えられるのですが、チェックボックス自体の大きさが変えられないのです。
チェックボックスのON/OFFはテキストを合わせた範囲をクリックすればよいので、マウスでの操作はそこまで不便はないでしょう。
ただ、周りのコントロールのテキストが大きかったり小さかったりすると、チェックボックスの大きさとのバランスが気になってしまうことがあるかもしれません。
見た目を気にしたい場合は、周りのコントロールと大きさのバランスをとる必要がありますね。
最後に
今回は、ユーザーフォームにチェックボックスを挿入する方法とプロパティ、イベントをご紹介しました。
チェックボックスも、ユーザーフォームでは使い勝手のよい便利なコントロールですので、是非使ってみてはいかがでしょうか。
それでは、最後までお読みいただきありがとうございました!
連載目次:【エクセルVBA】ユーザーフォームを使ってみよう!
ユーザーフォームは、ちょっとした画面なら作れてしまう、便利な機能です。
何となく敷居が高いように感じてしまいますが、順を追っていけば難しいことはありませんよ。
- 【エクセルVBA】ユーザーフォームを作ってみよう!VBEでフォームを挿入する方法
- 【エクセルVBA】Showメソッドでユーザーフォームをコマンドボタンから開いてみよう!
- 【エクセルVBA】コマンドボタンのClickイベントとUnloadステートメントでユーザーフォームを閉じる方法
- 【エクセルVBA】テキストボックスのプロパティで入力を便利にしよう
- 【エクセルVBA】テキストボックスでよく使う3つのイベントを使ってみよう
- 【エクセルVBA】Initializeイベントでワークシートの値をユーザーフォームの初期値にセットする
- 【エクセルVBA】AfterUpdateイベントでテキストボックス同士を連動させてみよう
- 【エクセルVBA】コマンドボタンのClickイベントでワークシートを更新してみよう
- 【エクセルVBA】ユーザーフォームのリストボックスを使ってみよう!
- 【エクセルVBA】リストボックスのRowSourceプロパティの値を変動させてみよう!
- 【エクセルVBA】AddItemメソッドでリストボックスに値を追加してみよう!
- 【エクセルVBA】リストボックスのListプロパティで複数列の値を更新する
- 【エクセルVBA】ユーザーフォームにコンボボックスを追加する方法
- 【エクセルVBA】コンボボックスに値をセットする2つの方法 RowSourceプロパティとAddItemメソッド