どのように使用VBAユーザーフォームのコントロールに
VBAのユーザーフォームは、ユーザーからの入力を取得するために使用され、出力やメッセージを表示するために使用されることもあります。ユーザーフォーム `link:/ applications-word-outlook-in-vba-getting-started-with-excel-vba-userforms [here]`の基本について学びます。
ユーザーフォームには、入力用に複数の異なるコンポーネントを含めることができます。
これらのコンポーネントは、ユーザーフォームのコントロールと呼ばれます。
ユーザーフォームコントロールにはいくつかの種類があり、それぞれが異なるプロパティを持ち、さまざまな理由で使用されます。各タイプのユーザーフォームコントロールをいつどのように使用するかを知っておくと便利です。この記事では、ExcelVBAでユーザーフォームコントロールを使用する方法を学習します。
ユーザーフォームコントロールの種類
VBAにはユーザーフォームコントロールが多すぎます。それらをカバーする場合この記事では、主要なフォームコントロールのみに焦点を当てます。
1:ラベル
2:TextBox
3:ComboBox
4:リストボックス
5:チェックボックス
6:OptionButton
7:ToggleButton
8:コマンドボタン
9:フレーム
これらすべてのコントロールを見てみましょう。
ラベル:
ラベルは、単にテキストラベルを表示するために使用されます。入力エリアのラベル、警告、方向などのように。
ユーザーフォームにラベルを追加するには、ToolBoxから[ラベル]オプション(Aアイコン)を選択するだけです。カーソルがプラス記号に変わります。ラベルを配置する領域にドラッグします。
TextBox:
テキストボックスは、ユーザーからの基本的なオープンエンド入力オプションです。ユーザーは、入力したい入力を入力するだけです。基本的なシナリオは名前の入力です。
マウスをテキストボックスに合わせたときにメッセージを表示する場合は、プロパティウィンドウのControlTipTextにメッセージを記述します。
ComboBox:
コンボボックスは、クリックされたときにアイテムのリストを表示するために使用されます。ユーザーは、そのリストから表示されている項目を簡単に選択するか、自分で入力を入力できます。
ユーザーが選択できるオプションのリストがある場合は、ExcelVBAでComboBoxを使用します。ユーザーはリストから選択するか、手動で回答を入力できます。
ツールボックスからコンボボックスを選択し、フォームをドラッグします。フォームにすぐにコンボボックスが挿入されます。 comboxのデフォルト名はCombobox1、2、3などになります。プロパティボックスから変更できます。
ComboBoxにアイテムを挿入する方法は?
これで、コンボボックスがフォームに追加されました。ただし、ユーザーフォームを読み込むと、コンボボックスに何も表示されません。これは、コンボボックスにまだアイテムを追加していないためです。
この例では、ユーザーフォームが初期化(ロード)されるときに、コンボボックスにアイテムを追加します。そのため、「初期化」でもユーザーフォームを使用します。
(コンポーネントではなく)ユーザーフォームを右クリックして、ユーザーフォーム全体を選択します。ビューコードを選択します。
`link:/ events-in-vba-the-events-in-excel-vba [events]`から
、[初期化]を選択します。
次に、ComboBoxクラスのプロパティPASSWORDを使用して、必要な数のアイテムを追加します。
Private Sub UserForm_Initialize() ComboBox1.AddItem "2016" ComboBox1.AddItem "2017" ComboBox1.AddItem "2018" ComboBox1.AddItem "2019" ComboBox1.AddItem "2020" End Sub
UserForm_Initialize()イベントにアイテムを追加しているため、ユーザーフォームが読み込まれると、すべてのアイテムがコンボボックスに追加されます。
選択したアイテムをComboBoxから取得する
コンボボックスから選択したアイテムを使用するには、ComboBoxのValueプロパティを使用するだけです。
Private Sub CommandButton1_Click() MsgBox ComboBox1.Value End Sub
ここでは、ユーザーがコマンドボタンをクリックしたときに選択した値を示しています(以下のコマンドボタンクリックイベントが表示されます)。
リストボックス
ListBoxは、ユーザーが定義済みのリストから選択できるようにする場合に使用されます。
ComboBoxに似ているように聞こえますか?はい、リストボックスはComboBoxと非常によく似ていますが、ユーザーがリストボックスに回答を入力できない点が異なります。
利用可能なオプションからのみ選択する必要があります。
フォームにリストボックスを挿入するには、ツールボックスからリストボックスを選択し、フォーム領域でドラッグします。
リストボックスのデフォルト名は、遺伝的にlistbox1、2、3などになります。
プロパティボックスから変更できます。
ComboBoxと同様に、VBAリストボックスは最初は空白です。初期化するには、リストボックスクラスのaddプロパティを使用するだけです。
リストボックスにアイテムを追加する方法は?
フォームの初期化イベントでコンボボックスのリストにアイテムを追加したので、同じイベントにリストボックスのアイテムを追加します。上記の初期化イベントを編集して、ユーザーフォームの読み込み時にアイテムを追加するだけです。
Private Sub UserForm_Initialize() ComboBox1.AddItem "2016" ComboBox1.AddItem "2017" ComboBox1.AddItem "2018" ComboBox1.AddItem "2019" ComboBox1.AddItem "2020" 'Adding Item to List ListBox1.AddItem "Jan" ListBox1.AddItem "Feb" ListBox1.AddItem "Mar" ListBox1.AddItem "Apr" ListBox1.AddItem "May" ListBox1.AddItem "Jun" ListBox1.AddItem "Jul" ListBox1.AddItem "Aug" ListBox1.AddItem "Sep" ListBox1.AddItem "Oct" ListBox1.AddItem "Nov" ListBox1.AddItem "Dec" End Sub
上記のコードは、フォームをロードするとすぐにリストボックスに月の名前を追加します。
リストボックスから選択したアイテムを取得しています
ユーザーがリストボックスで選択したアイテムを取得するには、リストボックスオブジェクトのValueプロパティを使用します。
ここでは、ユーザーが選択した月をコンボボックスで指定された入力に追加します。
Private Sub CommandButton1_Click() MsgBox ComboBox1.Value & "-" & ListBox1.Value End Sub
コマンドボタンを押すと、選択したアイテムがメッセージボックスに表示されます。
チェックボックスVBAコントロール
チェックボックスは、TrueまたはFalseに設定できるバイナリコントロールです。
複数のチェックボックスを設定して、一度に複数のチェックボックスを選択できます。これは基本的に、ユーザーが複数のオプションを選択できるようにする必要がある場合に使用されます。多肢選択問題のように。
チェックボックスをユーザーフォームに追加するには、ツールボックスからチェックボックスを選択し、VBAユーザーフォーム領域にドラッグします。
チェックボックスをユーザーフォームに追加すると、チェックボックスのデフォルト名はcheckbox1、checkbox2などになります。チェックボックスの名前はプロパティボックスから変更できます。
ユーザーフォームのチェックボックスの使い方は?
チェックボックスを追加するとすぐに、クリック可能になります。ユーザーはそれらをチェックまたはチェック解除できます。しかし、どのチェックボックスが選択され、どれが選択されていないかをどうやって知るのでしょうか?
私が言ったように、チェックボックスはブール値です。したがって、チェックボックスが選択されている場合、その値はTrueです。それ以外の場合、その値はFalseです。
以下のコードは、どのチェックボックスが選択されているかをチェックし、メッセージボックスに表示します。
Private Sub CommandButton1_Click() Dim msg As String If CheckBox1.Value = True Then msg = msg & "CheckBox1 is selected" End If If CheckBox2.Value = True Then msg = msg & vbCrLf & "CheckBox2 is selected" End If MsgBox msg End Sub
ユーザーがユーザーフォームでオプションを1つだけ選択できるようにする場合は、ラジオボタンを使用します。
OptionButtonVBAコントロール
ラジオ/オプションボタンは、ユーザーが使用可能なオプションから1つのオプションのみを選択するようにする場合に、VBAユーザーフォームで使用されます。フォームが性別、好みの言語、年齢層などを尋ねるときのように。
ラジオボタンは、ツールから選択してフォーム領域をドラッグすることで、ユーザーフォームに簡単に追加できます。複数のラジオボタンの場合は、ラジオボタンを複数回ドラッグアンドドロップします。
ラジオ/オプションボタンの選択を取得する方法は?
ラジオボタンはバイナリです。それらの値は、TrueまたはFalseのいずれかになります。
選択したラジオボタンはTrueに設定され、他のすべてのボタンはfalseに変わります。グループでは、一度に1つのラジオボタンのみが有効になります。
以下のコードは、どのラジオボタンが選択されているかを確認し、それに応じてメッセージを表示するだけです。
Private Sub CommandButton1_Click() Dim gender As String If OptionButton1.Value = True Then gender = "Male" ElseIf OptionButton2.Value = True Then gender = "female" Else gender = "other" End If MsgBox gender End Sub
上記の例では、ユーザーフォームで選択できるオプションボタンは1つだけであることに注意してください。しかし、オプションボタンの複数のグループが必要な場合はどうでしょうか。その場合、フレームを使用します。そしてそれは私たちを…
にもたらします=== VBAユーザーフォームのフレーム
フレームは、チェックボックスやオプションボタンなどのユーザーフォームオブジェクトにグループ化するために使用されます。
フレームを使用するには、最初にそのフレームをフォーム領域にドラッグアンドドロップしてから、そのフレーム内の他のオブジェクトをドロップします。
プロパティボックスのキャプションからフレームの名前を変更できます。
すべてのイベントは、他のユーザーフォームオブジェクトと同様にフレームでも使用できます。ただし、オブジェクトをグループ化するためにそれらを使用することが望ましいです。 framでonclickイベントを設定して、クリックされたときにその中のオブジェクトの基本情報をロードできます。
VBAユーザーフォームのボタンを切り替えます
トグルボタンも、オンとオフに設定できるバイナリオブジェクトです。トグルボタンを使用して、何かのオンとオフを切り替えることができます。
トグルボタンをユーザーフォームに追加するには、ツールからトグルボタンを選択し、フォーム領域にドラッグします。
以下のコードは、トグルボタンのonclickイベントに設定されています。トグルボタンを押すとセルA1の色が青に変わり、トグルボタンを押すとリセットされます。
Private Sub ToggleButton1_Click() If ToggleButton1.Value Then Range("A1").Interior.ColorIndex = 32 Else Range("A1").Interior.ColorIndex = xlColorIndexNone End If End Sub
VBAユーザーフォームのコマンドボタン
これらは、検証、計算、フォーム送信などのメインVBAコードを実行するために使用するボタンです。
上記の例では、コマンドボタンを使用してフォームを送信しました。ユーザーフォームには、必要な数のコマンドボタンを配置できます。
ボタンがクリックされたときにコードを実行するには、ボタンをダブルクリックするだけです。 CommandButton_Clickイベントを開きます。コマンドボタンをクリックして実行するコードをここに記述します。
以下のコードは、完了コマンドボタンをクリックすると実行され、ユーザーフォームも閉じます。
Private Sub CommandButton1_Click() Dim gender As String If OptionButton1.Value = True Then gender = "Male" ElseIf OptionButton2.Value = True Then gender = "female" Else gender = "other" End If MsgBox gender Unload UserForm1 'closes userform End Sub
そうですね、これらはVBAの基本的なユーザーフォームコントロールです。お役に立てば幸いです。ユーザーフォームコントロールとユーザーフォームイベントについて疑問がある場合は、以下のコメントセクションに記入してください。
関連記事
link:/ applications-word-outlook-in-vba-getting-started-with-excel-vba-userforms [ExcelVBAユーザーフォーム入門]
| Excelユーザーフォームは、ユーザーから情報を取得するのに役立ちます。 VBAユーザーフォームから始める方法は次のとおりです。`link:/ user-forms-input-boxes-in-vba-change-the-valuecontent-of-several-userform-controls-using-vba-in-microsoft-excel [Change ExcelでVBAを使用するいくつかのユーザーフォームコントロールの値/コンテンツ] `|ユーザーフォームコントロールのコンテンツを変更するには、この単純なVBAスニペットを使用します。
`link:/ user-forms-input-boxes-in-vba-prevent-a-userform-from-closeing-when-the-user-clicks-the-x-button-using-vba-in-microsoft-excel [ ExcelでVBAを使用して、ユーザーがxボタンをクリックしたときにユーザーフォームが閉じないようにします] `|ユーザーがフォームのxボタンをクリックしたときにユーザーフォームが閉じないようにするために、UserForm_QueryCloseイベントを使用します。
人気の記事:
link:/ keyboard-formula-shortcuts-50-excel-shortcuts-to-increase-your-productivity [生産性を高めるための50のExcelショートカット]
|あなたの仕事をより速くしてください。これらの50のショートカットにより、Excelでの作業がさらに高速になります。
link:/ forms-and-functions-introduction-of-vlookup-function [ExcelのVLOOKUP関数]
|これは、さまざまな範囲やシートから値を検索するために使用される、Excelの最も使用され人気のある関数の1つです。 link:/ Tips-countif-in-microsoft-excel [COUNTIF in Excel 2016]
|この驚くべき関数を使用して、条件付きの値をカウントします。特定の値をカウントするためにデータをフィルタリングする必要はありません。
ダッシュボードを準備するには、Countif関数が不可欠です。
link:/ excel-formula-and-function-excel-sumif-function [ExcelでSUMIF関数を使用する方法]
|これは、ダッシュボードのもう1つの重要な機能です。これは、特定の条件で値を合計するのに役立ちます。