マイクロソフトは、この情報をプログラミング言語の使用方法の一例として提供するだけであり、市場性および特定目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。この資料は、例示されているプログラミング言語やプロシージャの作成およびデバッグに使用するツールについて理解されているユーザーを対象としています。Microsoft Support 担当者は、特定のプロシージャの機能についての問い合わせにはお答えできますが、ユーザー固有の目的に合わせた機能の追加、プロシージャの作成などの内容変更は行っておりません。
先頭へ戻る
ユーザー フォームの基本的な内容
ユーザー フォームを表示する方法
プログラムからユーザー フォームを表示するための構文を以下に示します。
UserFormName.Show
UserForm1 という名前のユーザー フォームを表示するには、次のコードを使用します。
UserForm1.Show
ユーザー フォームは、実際には表示せずにメモリ内に読み込むことができます。複雑なユーザー フォームが表示されるまでには、数秒かかる場合があります。ユーザー フォームはメモリ内にプリロードできるため、このオーバーヘッドが発生する時期を決めることができます。UserForm1 を表示せずにメモリ内に読み込むには、次のコードを使用します。
Load UserForm1
ユーザー フォームを表示するには、前に示した Show メソッドを使用する必要があります。
ユーザー フォームを一時的に非表示にする方法
ユーザー フォームを一時的に非表示にするには、Hide メソッドを使用します。アプリケーションでユーザー フォーム間の移動を行う場合は、ユーザー フォームを非表示にすることが必要な場合があります。ユーザー フォームを非表示にするには、次のコードを使用します。
UserForm1.Hide
関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
213747 (http://support.microsoft.com/kb/213747/)
[XL2000] コマンド ボタンを使用してカスタム ユーザー フォーム間を移動する方法
ユーザー フォームをメモリ内から削除する方法
ユーザー フォームをメモリ内から削除するには、Unload ステートメントを使用します。UserForm1 という名前のユーザー フォームをアンロードするには、次のコードを使用します。
Unload UserForm1
ユーザー フォームを、ユーザー フォームまたはユーザー フォーム上のコントロールに関連付けられたイベント プロシージャ内で (たとえば、コマンド ボタン コントロールをクリックして) アンロードする場合は、ユーザー フォームの名前の代わりに "Me" キーワードを使用できます。"Me" キーワードを使用してユーザー フォームをアンロードするには、次のコードを使用します。
Unload Me
ユーザー フォーム イベントを使用する方法
ユーザー フォームでは、VBA プロシージャを割り当てることができる多くの定義済みイベントがサポートされています。イベントが発生すると、そのイベントに割り当てたプロシージャが実行されます。ユーザーが実行する単一の操作によって、複数のイベントが実行される場合があります。ユーザー フォームで最もよく使用されるイベントには、Initialize、Click、および Terminate があります。
注 : イベント プロシージャを含む Visual Basic モジュールは、ユーザー フォームの "背後" のモジュールと呼ばれることがあります。イベント プロシージャを含むモジュールは、Visual Basic Editor の Microsoft プロジェクト エクスプローラ ウィンドウにある Modules コレクションには表示されません。ユーザー フォームのコード モジュールを表示するには、ユーザー フォームの本体をダブルクリックする必要があります。
ユーザー フォーム イベントをトラップする方法
ユーザー フォーム イベントをトラップするには、以下の手順を実行します。
| 1. |
Excel で新しいブックを作成します。
|
| 2. |
[ツール] メニューの [マクロ] をポイントし、[Visual Basic Editor] をクリックします。
|
| 3. |
[挿入] メニューの [ユーザー フォーム] をクリックして、ユーザー フォームをブックに挿入します。
|
| 4. |
[UserForm1] をダブルクリックして、ユーザー フォームのコード ウィンドウを表示します。
|
| 5. |
モジュールに次のコードを入力します。
Private Sub UserForm_Click()
Me.Height = Int(Rnd * 500)
Me.Width = Int(Rnd * 750)
End Sub
Private Sub UserForm_Initialize()
Me.Caption = "Events Events Events!"
Me.BackColor = RGB(10, 25, 100)
End Sub
Private Sub UserForm_Resize()
msg = "Width: " & Me.Width & Chr(10) & "Height: " & Me.Height
MsgBox prompt:=msg, Title:="Resize Event"
End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
msg = "Now Unloading " & Me.Caption
MsgBox prompt:=msg, Title:="QueryClose Event"
End Sub
Private Sub UserForm_Terminate()
msg = "Now Unloading " & Me.Caption
MsgBox prompt:=msg, Title:="Terminate Event"
End Sub |
| 6. |
[実行] メニューの [Sub/ユーザー フォームの実行] をクリックします。
|
ユーザー フォームが最初に読み込まれると、マクロでは Initialize イベントを使用してユーザー フォームの Caption プロパティが "Events Events Events!" に変更され、BackColor プロパティが濃い青色に変更されます。
ユーザー フォームをクリックすると、Click イベントが実行されます。Click イベントにより、ユーザー フォームのサイズが変更されます。Resize イベントに対するプロシージャを作成したので、ユーザー フォームをクリックした後に 2 つのメッセージ ボックスが表示されます。Click イベントの背後のコードでユーザー フォームの Width プロパティと Height プロパティの両方が変更されるため、Resize イベントは 2 回発生します。
ユーザー フォームを閉じると、QueryClose イベントが実行されます。QueryClose イベントにより、Initialize イベントのコード内でユーザー フォームに指定したキャプションを含むメッセージ ボックスが表示されます。QueryClose イベントは、ユーザーがユーザー フォームを閉じるときに特定の一連の動作を実行する場合に使用できます。
次に、Terminate イベントにより、ユーザー フォームのキャプションが UserForm1 であることを示すメッセージ ボックスが生成されます。Terminate イベントは、ユーザー フォームがメモリ内から削除され、ユーザー フォームのキャプションが元の状態に戻った後に発生します。
閉じるボタンを使用してもユーザー フォームが閉じないようにする方法
ユーザー フォームを実行すると、ユーザー フォーム ウィンドウの右上隅に閉じるボタンが追加されます。閉じるボタンを使用してもユーザー フォームが閉じないようにするには、QueryClose イベントをトラップする必要があります。
QueryClose イベントは、ユーザー フォームがメモリ内からアンロードされる直前に発生します。ユーザー フォームがどのような方法で閉じられるのかを確認するには、QueryClose イベントの CloseMode 引数を使用します。CloseMode 引数の値が vbFormControlMenu になっている場合、閉じるボタンがクリックされたことを示しています。ユーザー フォームをアクティブなままにするには、QueryClose イベントの Cancel 引数を True に設定します。QueryClose イベントを使用して、閉じるボタンを使用してもユーザー フォームが閉じないようにするには、次の手順を実行します。
| 1. |
Excel で新しいブックを作成します。
|
| 2. |
[ツール] メニューの [マクロ] をポイントし、[Visual Basic Editor] をクリックします。
|
| 3. |
[挿入] メニューの [ユーザー フォーム] をクリックして、ユーザー フォームをブックに挿入します。
|
| 4. |
コマンド ボタン コントロールをユーザー フォームに追加します。
|
| 5. |
ユーザー フォームをダブルクリックして、ユーザー フォームのコード ウィンドウを表示します。
|
| 6. |
コード ウィンドウに、次のコードを入力します。
Private Sub CommandButton1_Click()
Unload Me
End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
IF CloseMode = vbFormControlMenu Then
Cancel = True
Me.Caption = "Click the CommandButton to close Me!"
End If
End Sub |
| 7. |
[実行] メニューの [Sub/ユーザー フォームの実行] をクリックします。
|
閉じるボタンをクリックしても、ユーザー フォームは閉じません。ユーザー フォームを閉じるには、CommandButton1 コントロールをクリックする必要があります。
関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
207714 (http://support.microsoft.com/kb/207714/)
[XL2000] ユーザー フォーム コレクション使用時のランタイム エラー
211527 (http://support.microsoft.com/kb/211527/) [XL2000] ユーザー フォーム コントロールをワークシート上にドラッグできない
211868 (http://support.microsoft.com/kb/211868/)
[XL2000]Set ステートメントでコントロール オブジェクトを代入するとエラー
213582 (http://support.microsoft.com/kb/213582/) [XL2000] マクロを使用してユーザー フォームにコントロールを追加するときに発生する問題
213583 (http://support.microsoft.com/kb/213583/) [XL2000] 他のプロジェクトでユーザー フォームを表示できない
213736 (http://support.microsoft.com/kb/213736/) [XL2000] マウス ボタンと一緒に押されたキーを確認する方法
213744 (http://support.microsoft.com/kb/213744/) [XL2000] ユーザー フォームを一時的に非表示にする方法
213747 (http://support.microsoft.com/kb/213747/) [XL2000] コマンド ボタンを使用してカスタム ユーザー フォーム間を移動する方法
213749 (http://support.microsoft.com/kb/213749/) [XL2000] データの入力にユーザー フォームを使用する方法
213768 (http://support.microsoft.com/kb/213768/) [XL2000] ユーザー フォームのサイズを動的に変更する方法
213774 (http://support.microsoft.com/kb/213774/) [XL2000] ユーザー フォームのあるスタートアップ画面を作成する方法
先頭へ戻る
VBA コード
Excel には、ユーザー フォーム上で使用できる 15 種類のコントロールが含まれています。ここでは、これらのコントロールをプログラムから使用するさまざまな例について説明します。
注 : この資料に掲載されている VBA コードには、コントロールのプロパティおよびイベントをすべて使用する例は含まれていません。必要な場合は、プロパティ ウィンドウを使用することで、コントロールで使用できるプロパティの一覧を確認できます。プロパティの一覧を表示するには、[表示] メニューの [プロパティ ウィンドウ] をクリックします。
デザイン モードでコントロールを編集する方法
Visual Basic Editor でダイアログ ボックスを設計する場合は、デザイン モードを使用します。デザイン モードでは、コントロールを編集したり、ユーザー フォーム上のコントロールのプロパティをプロパティ ウィンドウで変更したりできます。プロパティ ウィンドウを表示するには、[表示] メニューの [プロパティ ウィンドウ] をクリックします。
注 : デザイン モードの使用中に、コントロールがイベントに応答することはありません。どのようにユーザーに表示されるかを確認するためにダイアログ ボックスを実行しているときには、プログラムは実行モードになっています。実行モードでコントロールのプロパティに加えた変更は、ユーザー フォームがメモリからアンロードされると失われます。
注 : コントロールがイベントに応答するのは、実行モードのときです。
ユーザー フォーム上のコントロールを参照する方法
プログラムからコントロールを参照する方法は、コードを実行する Visual Basic モジュール シートの種類によって異なります。標準モジュールからコードが実行されている場合の構文は次のとおりです。
UserFormName.Controlname.Property = Value
たとえば、UserForm1 という名前のユーザー フォームにある TextBox1 というテキスト ボックス コントロールの Text プロパティに Bob という値を設定するには、次のコードを使用します。
UserForm1.TextBox1.Text = "Bob"
コントロールのイベントまたはユーザー フォームによって実行されるプロシージャ内にコードがある場合は、ユーザー フォームの名前を参照する必要はありません。この場合は、次のコードを使用します。
TextBox1.Text = "Bob"
コードをオブジェクトに割り当てると、そのオブジェクトのいずれかのイベントにコードが割り当てられます。この資料の多くの例では、CommandButton オブジェクトの Click イベントにコードを割り当てています。
先頭へ戻る
ラベル コントロール
ラベル コントロールの主な用途は、ユーザー フォーム上の他のコントロールに関する説明です。ユーザー フォームの実行中に、ユーザーがラベル コントロールを編集することはできません。ラベル コントロール内のテキストを設定したり、そのテキストを返したりするには、Caption プロパティを使用します。ラベル コントロールの書式を設定するためによく使用されるその他のプロパティには、Font プロパティや ForeColor プロパティなどがあります。
WITH ステートメントを使用してラベル コントロールの書式を設定する方法
WITH ステートメントを使用してラベル コントロールのプロパティを変更するには、以下の手順を実行します。
| 1. |
Excel を起動し、新しい空白のブックを開きます。
|
| 2. |
[ツール] メニューの [マクロ] をポイントし、[Visual Basic Editor] をクリックします。
|
| 3. |
[挿入] メニューの [ユーザー フォーム] をクリックして、ユーザー フォームをブックに挿入します。
|
| 4. |
ラベル コントロールをユーザー フォームに追加します。
|
| 5. |
コマンド ボタン コントロールをユーザー フォームに追加します。
|
| 6. |
CommandButton1 コントロールをダブルクリックして、ユーザー フォームのコード ウィンドウを表示します。
|
| 7. |
コード ウィンドウで、CommandButton1_Click イベントに次のコードを入力します。
Private Sub CommandButton1_Click()
With Label1
' Set the text of the label.
.Caption = "This is Label Example 1"
' Automatically size the label control.
.AutoSize = True
.WordWrap = False
' Set the font used by the Label control.
.Font.Name = "Times New Roman"
.Font.Size = 14
.Font.Bold = True
' Set the font color to blue.
.ForeColor = RGB(0, 0, 255)
End With
End Sub |
| 8. |
[実行] メニューの [Sub/ユーザー フォームの実行] をクリックします。
|
| 9. |
[CommandButton1] をクリックします。
|
"This is Label Example 1" というテキストが、ラベル コントロール上に Times New Roman の太字 (フォント サイズ 14) で表示されます。
先頭へ戻る
テキスト ボックス コントロール
テキスト ボックス コントロールは、ユーザーからの入力を取得する際によく使用されます。Text プロパティには、テキスト ボックス コントロールに入力された内容が格納されます。
テキスト ボックス コントロールを使用してパスワードを検証する方法
テキスト ボックス コントロールの PasswordChar プロパティを設定すると、このコントロールが "マスク エディット" コントロールになります。テキスト ボックス コントロールに入力されたすべての文字の表示が、指定した文字に置き換えられます。テキスト ボックス コントロールを使用してパスワードを検証するには、以下の手順を実行します。
| 1. |
Excel を起動し、新しい空白のブックを開きます。
|
| 2. |
[ツール] メニューの [マクロ] をポイントし、[Visual Basic Editor] をクリックします。
|
| 3. |
[挿入] メニューの [ユーザー フォーム] をクリックして、ユーザー フォームをブックに挿入します。
|
| 4. |
テキスト ボックス コントロールをユーザー フォームに追加します。
|
| 5. |
[表示] メニューの [プロパティ ウィンドウ] をクリックして、プロパティ ウィンドウを表示します。
|
| 6. |
テキスト ボックス コントロールの PasswordChar プロパティに * と入力します。
注 : これで、値がアスタリスクに変更されます。
|
| 7. |
コマンド ボタン コントロールをユーザー フォームに追加します。
|
| 8. |
CommandButton1 コントロールをダブルクリックして、ユーザー フォームのコード ウィンドウを表示します。
|
| 9. |
コード ウィンドウで、CommandButton1_Click イベントに次のコードを入力します。
Private Sub CommandButton1_Click()
If TextBox1.Text <> "userform" Then
MsgBox "Password is Incorrect. Please reenter."
TextBox1.Text = ""
TextBox1.SetFocus
Else
MsgBox "Welcome!"
Unload Me
End If
End Sub
|
| 10. |
[実行] メニューの [Sub/ユーザー フォームの実行] をクリックします。
|
| 11. |
テキスト ボックスに userform というパスワードを入力します。
|
| 12. |
[CommandButton1] をクリックします。
|
たとえば、パスワードが "userform" であるとします。誤ったパスワードを入力すると、パスワードが誤っていることを示すメッセージ ボックスが表示され、テキスト ボックス コントロールの内容が消去され、パスワードを入力し直すことができます。正しいパスワードを入力すると、"Welcome!" のメッセージが表示され、ユーザー フォームが閉じられます。
関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
213555 (http://support.microsoft.com/kb/213555/)
[XL2000] ユーザー フォームのテキスト ボックスにデータ検証プロパティがない
先頭へ戻る
コマンド ボタン コントロール
コマンド ボタン コントロールを使用して VBA プロシージャを実行できます。VBA プロシージャは通常、コマンド ボタン コントロールの Click イベントに割り当てられます。Click イベントが発生したときにプロシージャを実行するコマンド ボタン コントロールを使用するには、以下の手順を実行します。
| 1. |
Excel を起動し、新しい空白のブックを開きます。
|
| 2. |
[ツール] メニューの [マクロ] をポイントし、[Visual Basic Editor] をクリックします。
|
| 3. |
[挿入] メニューの [ユーザー フォーム] をクリックして、ユーザー フォームをブックに挿入します。
|
| 4. |
コマンド ボタン コントロールをユーザー フォームに追加します。
|
| 5. |
CommandButton1 コントロールをダブルクリックして、ユーザー フォームのコード ウィンドウを表示します。
|
| 6. |
コード ウィンドウに、次のコードを入力します。
Private Sub CommandButton1_Click()
red = Int(Rnd * 255)
green = Int(Rnd * 255)
blue = Int(Rnd * 255)
CommandButton1.BackColor = RGB(red, green, blue)
End Sub |
| 7. |
[実行] メニューの [Sub/ユーザー フォームの実行] をクリックします。
|
コマンド ボタン コントロールの背景色が、コントロールをクリックするたびに変更されます。
コマンド ボタン コントロールの関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
213572 (http://support.microsoft.com/kb/213572/)
[XL2000] キャンセル ボタンをクリックしてもユーザー フォームが閉じないことがある
213743 (http://support.microsoft.com/kb/213743/) [XL2000] ユーザー フォームにデフォルトのコマンド ボタンを設定する方法
先頭へ戻る
リスト ボックス コントロール
リスト ボックス コントロールの目的は、選択できる項目の一覧をユーザーに表示することです。Excel ワークシート上のリスト ボックス コントロールに、項目の一覧を格納できます。リスト ボックス コントロールにワークシート上のセル範囲を設定するには、RowSource プロパティを使用します。MultiSelect プロパティを使用すると、複数の項目を選択できるようにリスト ボックス コントロールが設定されます。
リスト ボックス コントロールから現在選択されている項目を取得する方法
現在選択されている項目を返すには、リスト ボックス コントロールの Value プロパティを使用します。単一選択リスト ボックス コントロールで現在選択されている項目を返すには、以下の手順を実行します。
| 1. |
Excel を起動し、新しい空白のブックを開きます。
|
| 2. |
Sheet1 のセル範囲 A1:A5 に、リスト ボックス コントロールの設定に使用する値を入力します。
|
| 3. |
[ツール] メニューの [マクロ] をポイントし、[Visual Basic Editor] をクリックします。
|
| 4. |
[挿入] メニューの [ユーザー フォーム] をクリックして、ユーザー フォームをブックに挿入します。
|
| 5. |
リスト ボックス コントロールをユーザー フォームに追加します。
|
| 6. |
ListBox1 コントロールをダブルクリックして、リスト ボックス コントロールのコード ウィンドウを表示します。
|
| 7. |
コード ウィンドウで、ListBox1_Click イベントに次のコードを入力します。
Private Sub ListBox1_Click()
MsgBox ListBox1.Value
End Sub |
| 8. |
[実行] メニューの [Sub/ユーザー フォームの実行] をクリックします。
|
リスト内の項目をクリックすると、メッセージ ボックスが表示され、現在選択されている項目が示されます。
複数選択リスト ボックス コントロールで選択された項目を取得する方法
複数選択リスト ボックス コントロールで選択されている項目を確認するには、リスト内のすべての項目をループ処理して Selected プロパティを照会する必要があります。複数選択リスト ボックス コントロールで現在選択されている項目を返すには、以下の手順を実行します。
| 1. |
Excel を起動し、新しい空白のブックを開きます。
|
| 2. |
Sheet1 のセル範囲 A1:A5 に、リスト ボックス コントロールの設定に使用する値を入力します。
|
| 3. |
[ツール] メニューの [マクロ] をポイントし、[Visual Basic Editor] をクリックします。
|
| 4. |
[挿入] メニューの [ユーザー フォーム] をクリックして、ユーザー フォームをブックに挿入します。
|
| 5. |
リスト ボックス コントロールをユーザー フォームに追加します。
|
| 6. |
[表示] メニューの [プロパティ ウィンドウ] をクリックして、プロパティ ウィンドウを表示します。
|
| 7. |
リスト ボックス コントロールのプロパティに、以下に示す値を入力します。
プロパティ 値
----------- -----------------------
MultiSelect 1 - frmMultiSelectMulti
RowSource Sheet1!A1:A5 |
| 8. |
コマンド ボタン コントロールをユーザー フォームに追加します。
|
| 9. |
CommandButton1 コントロールをダブルクリックして、ユーザー フォームのコード ウィンドウを表示します。
|
| 10. |
コード ウィンドウで、CommandButton1_Click イベントに次のコードを入力します。
Sub CommandButton1_Click ()
' Loop through the items in the ListBox.
For x = 0 to ListBox1.ListCount - 1
' If the item is selected...
If ListBox1.Selected(x) = True Then
' display the Selected item.
MsgBox ListBox1.List(x)
End If
Next x
End Sub |
| 11. |
[実行] メニューの [Sub/ユーザー フォームの実行] をクリックします。
|
| 12. |
リスト内の項目を 1 つ以上選択します。
|
| 13. |
[CommandButton1] をクリックします。
|
[CommandButton1] をクリックすると、リスト ボックス コントロールで選択しているすべての項目が個別のメッセージ ボックスに表示されます。
RowSource プロパティを使用してリスト ボックス コントロールにワークシート上のセルの値を設定する方法
RowSource プロパティを使用してリスト ボックス コントロールにワークシート上のセル範囲の値を設定するには、以下の手順を実行します。
| 1. |
Excel を起動し、新しい空白のブックを開きます。
|
| 2. |
Sheet1 のセル範囲 A1:A5 に、リスト ボックス コントロールの設定に使用する値を入力します。
|
| 3. |
[ツール] メニューの [マクロ] をポイントし、[Visual Basic Editor] をクリックします。
|
| 4. |
[挿入] メニューの [ユーザー フォーム] をクリックして、ユーザー フォームをブックに挿入します。
|
| 5. |
リスト ボックス コントロールをユーザー フォームに追加します。
|
| 6. |
コマンド ボタン コントロールをユーザー フォームに追加します。
|
| 7. |
CommandButton1 コントロールをダブルクリックして、ユーザー フォームのコード ウィンドウを表示します。
|
| 8. |
コード ウィンドウで、CommandButton1_Click イベントに次のコードを入力します。
Private Sub CommandButton1_Click()
ListBox1.RowSource = "=Sheet1!A1:A5"
End Sub |
| 9. |
[実行] メニューの [Sub/ユーザー フォームの実行] をクリックします。
注 : ListBox1 には、値は表示されません。
|
| 10. |
[CommandButton1] をクリックします。
|
ListBox1 に Sheet1 のセル範囲 A1:A5 の値が設定されます。
リスト ボックス コントロールに配列内の値を設定する方法
この例では、リスト ボックス コントロールに配列変数の値を設定する方法を示します。リスト ボックス コントロールに配列から値を割り当てる際には、一度に 1 項目を割り当てる必要があります。通常、この処理には For…Next ループなどのループ構造を使用する必要があります。リスト ボックス コントロールに配列変数の値を設定するには、以下の手順を実行します。
| 1. |
Excel を起動し、新しい空白のブックを開きます。
|
| 2. |
[ツール] メニューの [マクロ] をポイントし、[Visual Basic Editor] をクリックします。
|
| 3. |
[挿入] メニューの [ユーザー フォーム] をクリックして、ユーザー フォームをブックに挿入します。
|
| 4. |
リスト ボックス コントロールをユーザー フォームに追加します。
|
| 5. |
[挿入] メニューの [標準モジュール] をクリックして、モジュール シートを挿入します。
|
| 6. |
コード ウィンドウに、次のコードを入力します。
Sub PopulateListBox()
Dim MyArray As Variant
Dim Ctr As Integer
MyArray = Array("Apples", "Oranges", "Peaches", "Bananas", "Pineapples")
For Ctr = LBound(MyArray) To UBound(MyArray)
UserForm1.ListBox1.AddItem MyArray(Ctr)
Next
UserForm1.Show
End Sub |
| 7. |
[ツール] メニューの [マクロ] をポイントし、[PopulateListBox] をクリックして、[実行] をクリックします。
|
PopulateListBox プロシージャで簡単な配列が作成され、AddItem メソッドを使用して配列の項目がリスト ボックス コントロールに追加されます。その後、ユーザー フォームが表示されます。
ワークシート上の横方向のセル範囲を使用してリスト ボックス コントロールを設定する方法
リスト ボックス コントロールの RowSource プロパティを横方向のセル範囲の値に設定した場合は、最初の値だけがリスト ボックス コントロールに表示されます。
AddItem メソッドを使用して、リスト ボックス コントロールを横方向のセル範囲の値に設定するには、以下の手順を実行します。
| 1. |
Excel を起動し、新しい空白のブックを開きます。
|
| 2. |
Sheet1 のセル範囲 A1:E1 に、リスト ボックス コントロールの設定に使用する値を入力します。
|
| 3. |
[ツール] メニューの [マクロ] をポイントし、[Visual Basic Editor] をクリックします。
|
| 4. |
[挿入] メニューの [ユーザー フォーム] をクリックして、ユーザー フォームをブックに挿入します。
|
| 5. |
リスト ボックス コントロールをユーザー フォームに追加します。
|
| 6. |
[挿入] メニューの [標準モジュール] をクリックして、モジュール シートを挿入します。
|
| 7. |
コード ウィンドウに、次のコードを入力します。
Sub PopulateListWithHorizontalRange()
For Each x In Sheet1.Range("A1:E1")
UserForm1.ListBox1.AddItem x.Value
Next
UserForm1.Show
End Sub |
| 8. |
[ツール] メニューの [マクロ] をポイントし、[PopulateListWithHorizontalRange] をクリックして、[実行] をクリックします。
|
マクロ プロシージャで Sheet1 上のセル範囲 A1:E5 がループ処理され、それらの値が ListBox1 に 1 つずつ追加されます。
注 : ListBox1 は、Sheet1 上のセル範囲 A1:E5 にはバインドされません。
複数のデータ列にバインドされたリスト ボックス コントロールから複数の値を返す方法
リスト ボックス コントロールに書式を設定して、複数のデータ列を表示することができます。つまり、リスト ボックス コントロールで、リストの各行に複数の項目を表示できます。リスト内で選択された項目から複数の値を返すには、以下の手順を実行します。
| 1. |
Excel を起動し、新しい空白のブックを開きます。
|
| 2. |
Sheet1 のセルに、以下のようにデータを入力します。
|
A1: 年
|
B1: 地域
|
C1: 売り上げ
| |
A2: 1996
|
B2: 北部
|
C2: 140
| |
A3: 1996
|
B3: 南部
|
C3: 210
| |
A4: 1997
|
B4: 北部
|
C4: 190
| |
A5: 1997
|
B5: 南部
|
C5: 195
|
|
| 3. |
[ツール] メニューの [マクロ] をポイントし、[Visual Basic Editor] をクリックします。
|
| 4. |
[挿入] メニューの [ユーザー フォーム] をクリックして、ユーザー フォームをブックに挿入します。
|
| 5. |
ラベル コントロールをユーザー フォームに追加します。
|
| 6. |
リスト ボックス コントロールをユーザー フォームに追加します。
|
| 7. |
[ListBox1] を右クリックし、[プロパティ] をクリックします。
|
| 8. |
リスト ボックス コントロールのプロパティに、以下の表に示すように値を入力または選択します。
プロパティ 値
----------------------------
BoundColumn 1
ColumnCount 3
ColumnHeads True
RowSource Sheet1!A2:A5 |
| 9. |
ListBox1 コントロールをダブルクリックして、リスト ボックス コントロールのコード ウィンドウを表示します。
|
| 10. |
コード ウィンドウに、次のコードを入力します。
Private Sub ListBox1_Change()
Dim SourceData As Range
Dim Val1 As String, Val2 As String, Val3 As String
Set SourceRange = Range(ListBox1.RowSource)
Val1 = ListBox1.Value
Val2 = SourceRange.Offset(ListBox1.ListIndex, 1).Resize(1, 1).Value
Val3 = SourceRange.Offset(ListBox1.ListIndex, 2).Resize(1, 1).Value
Label1.Caption = Val1 & " " & Val2 & " " & Val3
End Sub |
| 11. |
[実行] メニューの [Sub/ユーザー フォームの実行] をクリックします。
|
リスト ボックス コントロールのエントリをクリックすると、ラベルが変更されて、そのエントリの 3 つの項目がすべて表示されます。
ワークシートにバインドされたリスト ボックス コントロールからすべての項目を削除する方法
ワークシートにバインドされたリスト ボックス コントロールからすべての項目を削除するには、RowSource プロパティに格納された値を消去します。ワークシートにバインドされたリスト ボックス コントロールから項目を削除するには、以下の手順を実行します。
| 1. |
Excel を起動し、新しい空白のブックを開きます。
|
| 2. |
Sheet1 のセル範囲 A1:A5 に、リスト ボックス コントロールの設定に使用する値を入力します。
|
| 3. |
[ツール] メニューの [マクロ] をポイントし、[Visual Basic Editor] をクリックします。
|
| 4. |
[挿入] メニューの [ユーザー フォーム] をクリックして、ユーザー フォームをブックに挿入します。
|
| 5. |
リスト ボックス コントロールをユーザー フォームに追加します。
|
| 6. |
ListBox1 コントロールを右クリックし、[プロパティ] をクリックします。
|
| 7. |
RowSource プロパティの値として Sheet1!A1:A5 と入力します。
|
| 8. |
コマンド ボタン コントロールをユーザー フォームに追加します。
|
| 9. |
CommandButton1 コントロールをダブルクリックして、コマンド ボタン コントロールのコード ウィンドウを表示します。
|
| 10. |
コード ウィンドウで、CommandButton1_Click イベントに次のコードを入力します。
Private Sub CommandButton1_Click()
ListBox1.RowSource = ""
End Sub |
| 11. |
[実行] メニューの [Sub/ユーザー フォームの実行] をクリックします。
ユーザー フォームに追加したリスト ボックス コントロールに、Sheet1 に入力した値が設定されます。
|
| 12. |
[CommandButton1] をクリックします。
|
ListBox1 からすべての項目が削除されます。
ワークシートにバインドされていないリスト ボックス コントロールからすべての項目を削除する方法
リストがワークシートにバインドされていない場合、リスト ボックス コントロールからすべての項目を一度に削除する VBA コマンドはありません。Visual Basic 配列を使用して設定されたリスト ボックス コントロールからすべての項目を削除するには、以下の手順を実行します。
| 1. |
Excel を起動し、新しい空白のブックを開きます。
|
| 2. |
[ツール] メニューの [マクロ] をポイントし、[Visual Basic Editor] をクリックします。
|
| 3. |
[挿入] メニューの [ユーザー フォーム] をクリックして、ユーザー フォームをブックに挿入します。
|
| 4. |
リスト ボックス コントロールをユーザー フォームに追加します。
|
| 5. |
[挿入] メニューの [標準モジュール] をクリックして、モジュール シートを挿入します。
|
| 6. |
コード ウィンドウに、次のコードを入力します。
Sub PopulateListBox()
Dim MyArray As Variant
Dim Ctr As Integer
MyArray = Array("Apples", "Oranges", "Peaches", "Bananas", "Pineapples")
For Ctr = LBound(MyArray) To UBound(MyArray)
UserForm1.ListBox1.AddItem MyArray(Ctr)
Next
UserForm1.Show
End Sub |
| 7. |
コマンド ボタン コントロールをユーザー フォームに追加します。
|
| 8. |
CommandButton1 コントロールをダブルクリックして、コマンド ボタン コントロールのコード ウィンドウを表示します。
|
| 9. |
コード ウィンドウで、CommandButton1_Click イベントに次のコードを入力します。
Private Sub CommandButton1_Click()
For i = 1 To ListBox1.ListCount
ListBox1.RemoveItem 0
Next I
End Sub |
| 10. |
[ツール] メニューの [マクロ] をポイントし、[PopulateListBox] をクリックして、[実行] をクリックします。
リスト ボックス コントロールの値が設定され、ユーザー フォームが表示されます。
|
| 11. |
[CommandButton1] をクリックします。
|
ListBox1 からすべての項目が削除されます。
リスト ボックス コントロールの関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
161598 (http://support.microsoft.com/kb/161598/)
[XL2000] リスト ボックスやコンボ ボックスに項目を設定する方法
211446 (http://support.microsoft.com/kb/211446/) [XL2000] TextColumn プロパティに最初の列だけが表示される
211896 (http://support.microsoft.com/kb/211896/) [XL2000] ユーザー フォームのリスト エディット コンボ ボックス コントロールの機能を実現する方法
211899 (http://support.microsoft.com/kb/211899/) [XL2000] リスト ボックス コントロールの列見出しの設定に関する問題
213721 (http://support.microsoft.com/kb/213721/)
[XL2000] リスト ボックス、コンボ ボックスのすべての項目を削除する方法
213722 (http://support.microsoft.com/kb/213722/)
[XL2000]TextColumn プロパティの使用方法について
213723 (http://support.microsoft.com/kb/213723/) [XL2000] 複数の列が表示されるリスト ボックスから値を返す方法
213746 (http://support.microsoft.com/kb/213746/) [XL2000] 複数の範囲を使用してリスト ボックス コントロールに項目を設定する方法
213748 (http://support.microsoft.com/kb/213748/) [XL2000] リスト ボックスに別のリスト ボックスの項目を設定する方法
213752 (http://support.microsoft.com/kb/213752/) [XL2000] RowSource にデータ バインドされているときに AddItem メソッドを使用するとエラーが発生する
213756 (http://support.microsoft.com/kb/213756/) [XL2000] リスト ボックス コントロールまたはコンボ ボックス コントロールでの RemoveItem メソッドの使用
213759 (http://support.microsoft.com/kb/213759/) [XL2000] リスト ボックスで選択されている項目の確認方法
先頭へ戻る
コンボ ボックス コントロール
コンボ ボックス コントロールは、ドロップダウン リスト ボックス、またはリスト内の値を選択したり新しい値を入力したりできるコンボ ボックスとして使用できます。コンボ ボックス コントロールがドロップダウン リスト ボックスとして動作するのかコンボ ボックスとして動作するのかは、Style プロパティによって決定されます。
注 : ここまでに記載されているリスト ボックス コントロールに関するすべての例は、「複数選択リスト ボックス コントロールで選択された項目を取得する方法」の例を除き、コンボ ボックスにも適用できます。
コンボ ボックス コントロールがワークシートにバインドされていない場合に新しい項目をリストに追加する方法
コンボ ボックス コントロールのリストにそれまで存在していなかった値が入力されたときに、リストに新しい値を追加することが必要な場合があります。コンボ ボックス コントロールがワークシートにバインドされていない場合に、コンボ ボックス コントロールに入力された新しい値を追加するには、以下の手順を実行します。
| 1. |
Excel を起動し、新しい空白のブックを開きます。
|
| 2. |
[ツール] メニューの [マクロ] をポイントし、[Visual Basic Editor] をクリックします。
|
| 3. |
[挿入] メニューの [ユーザー フォーム] をクリックして、ユーザー フォームをブックに挿入します。
|
| 4. |
コンボ ボックス コントロールをユーザー フォームに追加します。
|
| 5. |
[挿入] メニューの [標準モジュール] をクリックして、モジュール シートを挿入します。
|
| 6. |
コード ウィンドウに、次のコードを入力します。
Sub PopulateComboBox()
Dim MyArray As Variant
Dim Ctr As Integer
MyArray = Array("Apples", "Oranges", "Peaches", "Bananas", "Pineapples")
For Ctr = LBound(MyArray) To Ubound(MyArray)
UserForm1.ComboBox1.AddItem MyArray(Ctr)
Next
UserForm1.Show
End Sub |
| 7. |
コマンド ボタン コントロールをユーザー フォームに追加します。
|
| 8. |
CommandButton1 コントロールをダブルクリックして、コマンド ボタン コントロールのコード ウィンドウを表示します。
|
| 9. |
コード ウィンドウで、CommandButton1_Click イベントに次のコードを入力します。
Private Sub CommandButton1_Click()
Dim listvar As Variant
listvar = ComboBox1.List
On Error Resume Next
' If the item is not found in the list...
If IsError(WorksheetFunction.Match(ComboBox1.Value, listvar, 0)) Then
' add the new value to the list.
ComboBox1.AddItem ComboBox1.Value
End If
End Sub |
| 10. |
[ツール] メニューの [マクロ] をポイントし、[PopulateComboBox] をクリックして、[実行] をクリックします。
コンボ ボックス コントロールの値が設定され、ユーザー フォームが表示されます。
|
| 11. |
コンボ ボックス コントロールに Mangoes (またはリストにまだ存在しない値) を入力します。
|
| 12. |
[CommandButton1] をクリックします。
|
先ほど入力した新しい値が、リストの末尾に表示されます。
コンボ ボックス コントロールがワークシートにバインドされている場合に新しい項目をリストに追加する方法
コンボ ボックス コントロールのリストにそれまで存在していなかった値が入力されたときに、リストに新しい値を追加することが必要な場合があります。コンボ ボックス コントロールに入力された新しい値をリストに追加するには、以下の手順を実行します。
| 1. |
Excel を起動し、新しい空白のブックを開きます。
|
| 2. |
Sheet1 のセル範囲 A1:A5 に、コンボ ボックス コントロールの設定に使用する値を入力します。
|
| 3. |
Sheet1 のセル範囲 A1:A5 を選択します。
|
| 4. |
[挿入] メニューの [名前] をポイントし、[定義] をクリックします。
[名前] ボックスに ListRange と入力し、[OK] をクリックします。これにより、定義名 ListRange が作成されます。この定義名を使用して、コンボ ボックス コントロールの RowSource プロパティをワークシートにバインドできます。
|
| 5. |
[ツール] メニューの [マクロ] をポイントし、[Visual Basic Editor] をクリックします。
|
| 6. |
[挿入] メニューの [ユーザー フォーム] をクリックして、ユーザー フォームをブックに挿入します。
|
| 7. |
コンボ ボックス コントロールをユーザー フォームに追加します。
|
| 8. |
ComboBox1 のプロパティ ウィンドウで、[RowSource] プロパティの値として Sheet1!ListRange と入力します。
|
| 9. |
コマンド ボタン コントロールをユーザー フォームに追加します。
|
| 10. |
CommandButton1 コントロールをダブルクリックして、コマンド ボタン コントロールのコード ウィンドウを表示します。
|
| 11. |
コード ウィンドウで、CommandButton1_Click イベントに次のコードを入力します。
Private Sub CommandButton1_Click()
Dim SourceData As Range
Dim found As Object
Set SourceData = Range("ListRange")
Set found = Nothing
' Try to find the value on the worksheet.
Set found = SourceData.Find(ComboBox1.Value)
' If the item is not found in the list...
If found Is Nothing Then
' redefine ListRange.
SourceData.Resize(SourceData.Rows.Count + 1, 1).Name = "ListRange"
' Add the new item to the end of the list on the worksheet.
SourceData.Offset(SourceData.Rows.Count, 0).Resize(1, 1).Value _
= ComboBox1.Value
' Reset the list displayed in the ComboBox.
ComboBox1.RowSource = Range("listrange").Address(external:=True)
End If
End Sub |
| 12. |
[実行] メニューの [Sub/ユーザー フォームの実行] をクリックします。
Sheet1 上にユーザー フォームが表示されます。
|
| 13. |
コンボ ボックス コントロールで、リストにまだ存在しない値を入力します。
|
| 14. |
[CommandButton1] をクリックします。
|
コンボ ボックス コントロールに入力した新しい項目がリストに追加され、コンボ ボックス コントロールがバインドされているリストに含まれるセル範囲が A1:A6 に拡張されます。
ユーザー フォームが表示されたときにコンボ ボックス コントロールのリストを表示する方法
ユーザー フォームが最初に表示されたときに、コンボ ボックス コントロールのリストが表示されると便利な場合があります。次の例では、ユーザー フォームの Activate イベントを使用しています。コンボ ボックス コントロールのリストを表示するには、以下の手順を実行します。
| 1. |
Excel を起動し、新しい空白のブックを開きます。
|
| 2. |
Sheet1 のセル範囲 A1:A5 に、コンボ ボックス コントロールの設定に使用する値を入力します。
|
| 3. |
[ツール] メニューの [マクロ] をポイントし、[Visual Basic Editor] をクリックします。
|
| 4. |
[挿入] メニューの [ユーザー フォーム] をクリックして、ユーザー フォームをブックに挿入します。
|
| 5. |
コンボ ボックス コントロールをユーザー フォームに追加します。
|
| 6. |
ComboBox1 のプロパティ ウィンドウで、[RowSource] プロパティの値として Sheet1!A1:A5 と入力します。
|
| 7. |
ユーザー フォームをダブルクリックして、ユーザー フォームのコード ウィンドウを表示します。
|
| 8. |
コード ウィンドウで、UserForm_Activate イベントに次のコードを入力します。
Private Sub UserForm_Activate()
ComboBox1.DropDown
End Sub |
| 9. |
[実行] メニューの [Sub/ユーザー フォームの実行] をクリックします。
|
Sheet1 上にユーザー フォームが表示され、ComboBox1 のリストが表示されます。
コンボ ボックス コントロールで選択が行われたときに別のコンボ ボックス コントロールのリストを表示する方法
あるコンボ ボックス コントロールで選択が行われたときに、別のコンボ ボックス コントロールのリストを自動的に表示するには、以下の手順を実行します。
| 1. |
Excel を起動し、新しい空白のブックを開きます。
|
| 2. |
Sheet1 のセル範囲 A1:A10 に、コンボ ボックス コントロールの設定に使用する値を入力します。
|
| 3. |
[ツール] メニューの [マクロ] をポイントし、[Visual Basic Editor] をクリックします。
|
| 4. |
[挿入] メニューの [標準モジュール] をクリックします。
|
| 5. |
モジュールのコード ウィンドウに、次のコードを入力します。
Sub DropDown_ComboBox()
UserForm1.ComboBox2.DropDown
End Sub |
| 6. |
[挿入] メニューの [ユーザー フォーム] をクリックして、ユーザー フォームをブックに挿入します。
|
| 7. |
コンボ ボックス コントロールをユーザー フォームに追加します。
|
| 8. |
ComboBox1 のプロパティ ウィンドウで、[RowSource] プロパティの値として Sheet1!A1:A5 と入力します。
|
| 9. |
ComboBox1 コントロールをダブルクリックして、コンボ ボックス コントロールのコード ウィンドウを表示します。
|
| 10. |
コンボ ボックス コントロールのコード ウィンドウで、ComboBox1_Click イベントに次のコードを入力します。
Private Sub ComboBox1_Click()
Application.OnTime Now, "DropDown_ComboBox"
End Sub |
| 11. |
2 つ目のコンボ ボックス コントロールをユーザー フォームに追加します。
|
| 12. |
ComboBox2 のプロパティ ウィンドウで、[RowSource] プロパティの値として Sheet1!A6:A10 と入力します。
|
| 13. |
[実行] メニューの [Sub/ユーザー フォームの実行] をクリックします。
|
ComboBox1 のリストの項目をクリックすると、ComboBox2 のリストが自動的に表示されます。
コンボ ボックス コントロールの関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
161598 (http://support.microsoft.com/kb/161598/)
[XL2000] リスト ボックスやコンボ ボックスに項目を設定する方法
211446 (http://support.microsoft.com/kb/211446/) [XL2000] TextColumn プロパティに最初の列だけが表示される
211899 (http://support.microsoft.com/kb/211899/) [XL2000] リスト ボックス コントロールの列見出しの設定に関する問題
213717 (http://support.microsoft.com/kb/213717/) [XL2000] コンボ ボックスで DropDown メソッドを使用するとランタイム エラーが発生する
213718 (http://support.microsoft.com/kb/213718/)
[XL2000] ユーザーフォームが表示された際にコンボ ボックスのリストを表示する方法
213721 (http://support.microsoft.com/kb/213721/)
[XL2000] リスト ボックス、コンボ ボックスのすべての項目を削除する方法
213722 (http://support.microsoft.com/kb/213722/)
[XL2000]TextColumn プロパティの使用方法について
213752 (http://support.microsoft.com/kb/213752/) [XL2000] RowSource にデータ バインドされているときに AddItem メソッドを使用するとエラーが発生する
213756 (http://support.microsoft.com/kb/213756/) [XL2000] リスト ボックス コントロールまたはコンボ ボックス コントロールでの RemoveItem メソッドの使用
先頭へ戻る
フレーム コントロール
ユーザー フォーム内の論理的に関連する項目をグループ化するには、フレーム コントロールを使用します。フレーム コントロールは、オプション ボタン コントロールをグループ化するためによく使用されます。
フレーム コントロール上のすべてのコントロールをループ処理する方法
For Each…Next ループを使用してフレーム コントロール内のすべてのコントロールにアクセスするには、以下の手順を実行します。
| 1. |
Excel を起動し、新しい空白のブックを開きます。
|
| 2. |
[ツール] メニューの [マクロ] をポイントし、[Visual Basic Editor] をクリックします。
|
| 3. |
[挿入] メニューの [ユーザー フォーム] をクリックして、ユーザー フォームをブックに挿入します。
|
| 4. |
フレーム コントロールをユーザー フォームに追加します。
|
| 5. |
オプション ボタン コントロールをフレーム コントロールに追加します。
この手順を繰り返して、さらに 2 つのオプション ボタン コントロールをフレーム コントロールに追加します。
|
| 6. |
Frame1 コントロールをダブルクリックして、フレーム コントロールのコード ウィンドウを表示します。
|
| 7. |
コード ウィンドウで、Frame1_Click イベントに次のコードを入力します。
Private Sub Frame1_Click()
Dim Ctrl As Control
For Each Ctrl In Frame1.Controls
Ctrl.Enabled = Not Ctrl.Enabled
Next
End Sub |
| 8. |
[実行] メニューの [Sub/ユーザー フォームの実行] をクリックします。
|
| 9. |
ユーザー フォームで、Frame1 コントロールをクリックします。
|
フレーム コントロールを最初にクリックしたときに、フレーム コントロール内のすべてのコントロールが使用できなくなります。フレーム コントロールを再度クリックすると、コントロールが再度使用できるようになります。
先頭へ戻る
オプション ボタン コントロール
オプション ボタン コントロールのグループを使用して、オプションのグループから 1 つを選択するようにできます。オプション ボタン コントロールをグループ化するには、以下のどちらかの方法を使用します。
| ? |
フレーム コントロール
|
| ? |
GroupName プロパティ
|
注 : On、Yes、および True の各値は、オプション ボタンが選択されていることを示します。Off、No、および False の各値は、オプション ボタンが選択されていないことを示します。
フレーム コントロール上にオプション ボタン コントロールがある場合に選択されているオプション ボタン コントロールを確認する方法
フレーム コントロールを使用してオプション ボタン コントロールをグループ化した場合、フレーム コントロール内のすべてのコントロールをループ処理し、各コントロールの Value プロパティをチェックすると、選択されているオプション ボタン コントロールを確認できます。選択されているオプション ボタン コントロールを確認するには、以下の手順を実行します。
| 1. |
Excel を起動し、新しい空白のブックを開きます。
|
| 2. |
[ツール] メニューの [マクロ] をポイントし、[Visual Basic Editor] をクリックします。
|
| 3. |
[挿入] メニューの [ユーザー フォーム] をクリックして、ユーザー フォームをブックに挿入します。
|
| 4. |
フレーム コントロールをユーザー フォームに追加します。
|
| 5. |
オプション ボタン コントロールをフレーム コントロール内に追加します。
この手順を繰り返して、さらに 2 つのオプション ボタン コントロールをフレーム コントロール内に追加します。
|
| 6. |
コマンド ボタン コントロールを、フレーム コントロールの外側のユーザー フォームに追加します。
|
| 7. |
CommandButton1 コントロールをダブルクリックして、ユーザー フォームのコード ウィンドウを表示します。
|
| 8. |
コード ウィンドウで、CommandButton1_Click イベントに次のコードを入力します。
Private Sub CommandButton1_Click()
For Each x In Frame1.Controls
If x.Value = True Then
MsgBox x.Caption
End If
Next
End Sub |
| 9. |
[実行] メニューの [Sub/ユーザー フォームの実行] をクリックします。
|
| 10. |
[UserForm1] ダイアログ ボックスで、いずれかのオプション ボタンをクリックし、[CommandButton1] をクリックします。
|
現在選択されているオプション ボタン コントロールのキャプションが示されたメッセージ ボックスが表示されます。
選択されているオプション ボタン コントロールを確認する方法
次の例の目的は、Group1 内の選択されているオプション ボタン コントロールを確認することです。オプション ボタンのグループが 2 つあるユーザー フォームを作成するには、以下の手順を実行します。
| 1. |
Excel を起動し、新しい空白のブックを開きます。
|
| 2. |
[ツール] メニューの [マクロ] をポイントし、[Visual Basic Editor] をクリックします。
|
| 3. |
[挿入] メニューの [ユーザー フォーム] をクリックし、ユーザー フォームをブックに挿入します。
|
| 4. |
フレーム コントロールをユーザー フォームに追加します。
|
| 5. |
オプション ボタン コントロールをフレーム コントロール内に追加します。
この手順を繰り返して、さらに 2 つのオプション ボタン コントロールをフレーム コントロール内に追加します。
|
| 6. |
各オプション ボタン コントロールの GroupName プロパティに Group1 と入力します。
|
| 7. |
手順 4. 〜 5. を繰り返して、3 つのオプション ボタン コントロールを含む 2 番目のフレーム コントロールを作成します。
|
| 8. |
2 番目のフレーム コントロール内の各オプション ボタン コントロールについて、GroupName プロパティに Group2 と入力します。
|
| 9. |
コマンド ボタン コントロールを、フレーム コントロールの外側のユーザー フォームに追加します。
|
| 10. |
CommandButton1 コントロールをダブルクリックして、ユーザー フォームのコード ウィンドウを表示します。
|
| 11. |
コード ウィンドウで、CommandButton1_Click イベントに次のコードを入力します。
Private Sub CommandButton1_Click()
Dim x As Control
' Loop through ALL the controls on the UserForm.
For Each x In Me.Controls
' Check to see if "Option" is in the Name of each control.
If InStr(x.Name, "Option") Then
' Check Group name.
If x.GroupName = "Group1" Then
' Check the status of the OptionButton.
If x.Value = True Then
MsgBox x.Caption
Exit For
End If
End If
End If
Next
End Sub |
| 12. |
[実行] メニューの [Sub/ユーザー フォームの実行] をクリックします。
|
| 13. |
[ユーザー フォーム] で、Group1 のいずれかのオプション ボタン コントロールをクリックし、[CommandButton1] をクリックします。
|
現在選択されているオプション ボタン コントロールのキャプションが示されたメッセージ ボックスが表示されます。
オプション ボタン コントロールの関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
213724 (http://support.microsoft.com/kb/213724/)
[XL2000] オプション ボタンの TripleState プロパティを使用する場合の問題
先頭へ戻る
チェック ボックス コントロール
チェック ボックス コントロールを使用すると、True 値または False 値が示されます。チェック マークが付けられたチェック ボックスは True の値を示し、チェック マークがないチェック ボックスは False の値を示します。TripleState プロパティの値が True の場合は、チェック ボックス コントロールの値として Null も使用されます。値が Null になっているチェック ボックス コントロールは、淡色表示されます (使用できません)。
注 : On、Yes、および True の各値は、チェック ボックス コントロールがオンであることを示します。Off、No、および False の各値は、チェック ボックス コントロールがオフであることを示します。
チェック ボックス コントロールの値を確認する方法
Value プロパティを使用してチェック ボックス コントロールの現在の値を返すには、以下の手順を実行します。
| 1. |
Excel を起動し、新しい空白のブックを開きます。
|
| 2. |
[ツール] メニューの [マクロ] をポイントし、[Visual Basic Editor] をクリックします。
|
| 3. |
[挿入] メニューの [ユーザー フォーム] をクリックして、ユーザー フォームをブックに挿入します。
|
| 4. |
チェック ボックス コントロールをユーザー フォームに追加します。
|
| 5. |
CheckBox1 のプロパティ ウィンドウで、[TripleState] プロパティの値として True を選択します。
|
| 6. |
CheckBox1 コントロールをダブルクリックして、チェック ボックス コントロールのコード ウィンドウを表示します。
|
| 7. |
コード ウィンドウで、CheckBox1_Change イベントに次のコードを入力します。
Private Sub CheckBox1_Change()
Select Case CheckBox1.Value
Case True
CheckBox1.Caption = "True"
Case False
CheckBox1.Caption = "False"
Case Else
CheckBox1.Caption = "Null"
End Select
End Sub |
| 8. |
[実行] メニューの [Sub/ユーザー フォームの実行] をクリックします。
|
[CheckBox1] コントロールをクリックすると、チェック ボックス コントロールのキャプションが現在の値を反映するように変更されます。
先頭へ戻る
トグル ボタン コントロール
トグル ボタン コントロールの外観は、クリックするまではコマンド ボタン コントロールと同じです。トグル ボタン コントロールをクリックすると、押し下げられた表示になります。トグル ボタン コントロールの Value プロパティの値は、ボタンが押されているときは True になり、ボタンが押されていないときは False になります。TripleState プロパティの値が True の場合は、トグル ボタン コントロールの値として Null も使用されます。値が Null になっているトグル ボタン コントロールは、淡色表示されます (使用できません)。
注 : On、Yes、および True の各値は、トグル ボタン コントロールがオンであることを示します。Off、No、および False の各値は、トグル ボタン コントロールがオフであることを示します。
トグル ボタン コントロールの値を取得する方法
トグル ボタン コントロールの値を取得するには、以下の手順を実行します。
| 1. |
Excel を起動し、新しい空白のブックを開きます。
|
| 2. |
[ツール] メニューの [マクロ] をポイントし、[Visual Basic Editor] をクリックします。
|
| 3. |
[挿入] メニューの [ユーザー フォーム] をクリックして、ユーザー フォームをブックに挿入します。
|
| 4. |
トグル ボタン コントロールをユーザー フォームに追加します。
|
| 5. | ラベル コントロールをユーザー フォームに追加します。 |
| 6. |
ToggleButton1 コントロールをダブルクリックして、トグル ボタン コントロールのコード ウィンドウを表示します。
|
| 7. |
コード ウィンドウで、ToggleButton1_Click イベントに次のコードを入力します。
Private Sub ToggleButton1_Click()
If ToggleButton1.Value = True Then
' Set UserForm background to Red.
Me.BackColor = RGB(255, 0, 0)
Else
' Set UserForm background to Blue.
Me.BackColor = RGB(0, 0, 255)
End If
End Sub |
| 8. |
[実行] メニューの [Sub/ユーザー フォームの実行] をクリックします。
|
トグル ボタン コントロールをクリックすると、ユーザー フォームの背景色が変更されます。
相互に排他的なトグル ボタン コントロールのグループを作成する方法
この例では、MouseUp イベントを使用して変数を設定し、ExclusiveToggleButtons プロシージャを呼び出します。ExclusiveToggleButtons プロシージャでは、選択されているトグル ボタン コントロールを確認してそれ以外の選択をキャンセルします。相互に排他的なトグル ボタン コントロールのグループを作成するには、以下の手順を実行します。
| 1. |
Excel を起動し、新しい空白のブックを開きます。
|
| 2. |
[ツール] メニューの [マクロ] をポイントし、[Visual Basic Editor] をクリックします。
|
| 3. |
[挿入] メニューの [標準モジュール] をクリックします。
|
| 4. |
モジュールのコード ウィンドウに、次のコードを入力します。
' Variable that holds the name of the ToggleButton that was clicked.
Public clicked As String
Sub ExclusiveToggleButtons()
Dim toggle As Control
' Loop through all the ToggleButtons on Frame1.
For Each toggle In UserForm1.Frame1.Controls
' If Name of ToggleButton matches name of ToggleButton
' that was clicked...
If toggle.Name = clicked Then
'...select the button.
toggle.Value = True
Else
'...otherwise clear the selection of the button.
toggle.Value = False
End If
Next
End Sub |
| 5. |
[挿入] メニューの [ユーザー フォーム] をクリックして、ユーザー フォームをブックに挿入します。
|
| 6. |
フレーム コントロールをユーザー フォームに追加します。
|
| 7. |
トグル ボタン コントロールをフレーム コントロールに追加します。
この手順を繰り返して、さらに 2 つのトグル ボタン コントロールをフレーム コントロール内に追加します。
|
| 8. |
Frame1 コントロールをダブルクリックして、ユーザー フォームのコード ウィンドウを表示します。
|
| 9. |
モジュールのコード ウィンドウで、ToggleButton_MouseUp イベントに次のコードを入力します。
Private Sub ToggleButton1_MouseUp(ByVal Button As Integer, _
ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
clicked = ToggleButton1.Name
Application.OnTime Now, "ExclusiveToggleButtons"
End Sub
Private Sub ToggleButton2_MouseUp(ByVal Button As Integer, _
ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
clicked = ToggleButton2.Name
Application.OnTime Now, "ExclusiveToggleButtons"
End Sub
Private Sub ToggleButton3_MouseUp(ByVal Button As Integer, _
ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
clicked = ToggleButton3.Name
Application.OnTime Now, "ExclusiveToggleButtons"
End Sub |
| 10. |
[実行] メニューの [Sub/ユーザー フォームの実行] をクリックします。
|
トグル ボタン コントロールをクリックすると、前に選択したトグル ボタン コントロールがキャンセルされます。
先頭へ戻る
タブ ストリップ コントロール
一連のコントロールのさまざまな情報のセットを表示するには、タブ ストリップ コントロールを使用します。
タブ ストリップ コントロールをプログラムによって制御する方法
イメージ コントロールの BackColor プロパティを選択されたタブに応じて変更するには、以下の手順を実行します。
| 1. |
Excel を起動し、新しい空白のブックを開きます。
|
| 2. |
[ツール] メニューの [マクロ] をポイントして、[Visual Basic Editor] をクリックします。
|
| 3. |
[挿入] メニューの [ユーザー フォーム] をクリックして、ユーザー フォームをブックに挿入します。
|
| 4. |
タブ ストリップ コントロールをユーザー フォームに追加します。
|
| 5. |
タブ ストリップ コントロールの本体を覆い隠し、タブを覆い隠さないようにイメージ コントロールを追加します。
|
| 6. |
Image1 のプロパティ ウィンドウで、BackColor プロパティに &H000000FF& と入力します。
|
| 7. |
TabStrip1 コントロールをダブルクリックして、タブ ストリップ コントロールのコード ウィンドウを表示します。
|
| 8. |
コード ウィンドウで、TabStrip1_Change イベントに次のコードを入力します。
Private Sub TabStrip1_Change()
Dim i As Integer
i = TabStrip1.SelectedItem.Index
Select Case i
Case 0
' If Tab1 is selected, change the color of Image control to Red.
Image1.BackColor = RGB(255, 0, 0)
Case 1
' If Tab2 is selected, change the color of Image control to Green.
Image1.BackColor = RGB(0, 255, 0)
End Select
End Sub |
| 9. |
[実行] メニューの [Sub/ユーザー フォームの実行] をクリックします。
|
アクティブなタブ ストリップ コントロールのページに応じて、イメージ コントロールの色が変更されます。
タブ ストリップ コントロールの関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
213254 (http://support.microsoft.com/kb/213254/)
[XL2000] ユーザー フォーム上でタブ ストリップ コントロールを使用する方法
先頭へ戻る
マルチ ページ コントロール
いくつかのカテゴリに分類できる大量の情報を扱うには、マルチ ページ コントロールを使用します。マルチ ページ コントロールは、それぞれが異なるコントロールのセットを含む 1 つ以上の Page オブジェクトで構成されます。マルチ ページ コントロールの Value プロパティを設定することで、アクティブ ページをプログラムから設定できます。
マルチ ページ コントロールをプログラムによって制御する方法
マルチ ページ コントロールを追加し、マクロを使用して制御するには、以下の手順を実行します。
| 1. |
Excel を起動し、新しい空白のブックを開きます。
|
| 2. |
[ツール] メニューの [マクロ] をポイントし、[Visual Basic Editor] をクリックします。
|
| 3. |
[挿入] メニューの [ユーザー フォーム] をクリックして、ユーザー フォームをブックに挿入します。
|
| 4. |
マルチ ページ コントロールをユーザー フォームに追加します。
|
| 5. |
マルチ ページ コントロールの Page1 にラベル コントロールを追加します。
|
| 6. |
マルチ ページ コントロールの Page1 にテキスト ボックス コントロールを追加します。
|
| 7. |
マルチ ページ コントロールで Page2 をクリックし、手順 5. 〜 6. を繰り返して、ラベル コントロールとテキスト ボックス コントロールを追加します。
|
| 8. |
MultiPage1 コントロールをダブルクリックして、マルチ ページ コントロールのコード ウィンドウを表示します。
|
| 9. |
コード ウィンドウで、MultiPage1_Change イベントに次のコードを入力します。
Private Sub MultiPage1_Change()
Select Case MultiPage1.Value
' If activating Page1...
Case 0
Label1.Caption = TextBox2.Text
TextBox1.Text = ""
' If activating Page2...
Case 1
Label2.Caption = TextBox1.Text
TextBox2.Text = ""
End Select
End Sub |
| 10. |
コード ウィンドウで、UserForm_Initialize イベントに次のコードを入力します。
Private Sub UserForm_Initialize()
' Force Page1 to be active when UserForm is displayed.
MultiPage1.Value = 0
Label1.Caption = ""
End Sub |
| 11. |
[実行] メニューの [Sub/ユーザー フォームの実行] をクリックします。
Page1 上のテキスト ボックスに Test と入力します。[Page2] タブをクリックすると、TextBox2 の内容が消去され、Label2 のキャプションが Page1 の TextBox1 に入力した内容 ("Test") に変更されます。
|
マルチ ページ コントロールを使用してウィザード インターフェイスを作成する方法
作業でいくつもの手順が次々と必要になるときには、ウィザード インターフェイスが効果的な場合があります。複数のユーザー フォームを使用するのではなく、マルチ ページ コントロールを使用してウィザード インターフェイスを作成することができます。この例では、3 つのページがあるマルチ ページ コントロールを操作します。ユーザー フォームの Initialize イベントに割り当てられたプロシージャにより、マルチ ページ コントロールの Page2 と Page3 が無効になり、Page1 が強制的にアクティブにされます。
注 : Pages コレクションを使用して、マルチ ページ コントロールのページに対してインデックスを付けると、コレクションの最初のページはページ 0 になります。このプロシージャでは、他にも、コマンド ボタン コントロールのキャプションを設定し、[<Back] ボタンを無効にしています。
注 : CommandButton1 の Click イベントに割り当てられたプロシージャで、[<Back] ボタンの機能を制御しています。CommandButton2 の Click イベントに割り当てられたプロシージャでは、[Next>] ボタンの機能を制御しています。マルチ ページ コントロールを使用してウィザード インターフェイスを作成するには、以下の手順を実行します。
| 1. |
Excel を起動し、新しい空白のブックを開きます。
|
| 2. |
[ツール] メニューの [マクロ] をポイントし、[Visual Basic Editor] をクリックします。
|
| 3. |
[挿入] メニューの [ユーザー フォーム] をクリックして、ユーザー フォームをブックに挿入します。
|
| 4. |
マルチ ページ コントロールをユーザー フォームに追加します。
|
| 5. |
[Page1] タブを右クリックし、[新しいページ] をクリックして、マルチ ページ コントロールに Page3 を追加します。
|
| 6. |
コマンド ボタン コントロールを、ユーザー フォームのマルチ ページ コントロール以外の場所に追加します。
この手順を繰り返して、2 番目のコマンド ボタン コントロールをユーザー フォームに追加します。
|
| 7. |
UserForm1 をダブルクリックして、ユーザー フォームのコード ウィンドウを表示します。
|
| 8. |
コード ウィンドウで、UserForm_Initialize イベントに次のコードを入力します。
Private Sub UserForm_Initialize()
With MultiPage1
' The next 2 lines disable Page2 & Page3.
.Pages(1).Enabled = False
.Pages(2).Enabled = False
' Make Page1 the active page.
.Value = 0
End With
' Set the caption on the CommandButtons.
CommandButton1.Caption = "<Back"
CommandButton1.Enabled = False
CommandButton2.Caption = "Next>"
End Sub
' Procedure for the "<Back" button
Private Sub CommandButton1_Click()
Select Case MultiPage1.Value
Case 1 ' If Page2 is active...
With MultiPage1
.Pages(0).Enabled = True ' Enable Page1.
.Value = MultiPage1.Value - 1 ' Move back 1 page.
.Pages(1).Enabled = False ' Disable Page2.
End With
CommandButton1.Enabled = False ' Disable Back button.
Case 2 ' If Page3 is active...
With MultiPage1
.Pages(1).Enabled = True ' Enable Page2.
.Value = MultiPage1.Value - 1 ' Move back 1 page.
.Pages(2).Enabled = False ' Disable Page3.
CommandButton2.Caption = "Next>"
End With
End Select
End Sub
' Procedure for the "Next>" button
Private Sub CommandButton2_Click()
Select Case MultiPage1.Value
Case 0 ' If Page1 is active...
With MultiPage1
.Value = MultiPage1.Value + 1 ' Move forward 1 page.
.Pages(1).Enabled = True ' Enable Page2.
.Pages(0).Enabled = False ' Disable Page1.
End With
CommandButton1.Enabled = True ' Enable Back button.
Case 1 ' If Page2 is active...
With MultiPage1
.Value = MultiPage1.Value + 1 ' Move forward 1 page.
.Pages(2).Enabled = True ' Enable Page3.
.Pages(1).Enabled = False ' Disable Page2.
End With
CommandButton2.Caption = "Finish" ' Change Next button to Finish.
Case 2 ' If Page3 is active...
MsgBox "Finished!" ' User is Finished.
Unload Me ' Unload the UserForm.
End Select
End Sub
|
| 9. |
[実行] メニューの [Sub/ユーザー フォームの実行] をクリックします。
|
[Next>] をクリックすると、Page2 がアクティブになり、[<Back] ボタンが使用できるようになります。[Next>] を再度クリックすると、Page3 がアクティブになり、CommandButton2 のキャプションが "Finish" に変更されます。
先頭へ戻る
スクロール バー コントロール
スクロール バー コントロールは、ラベル コントロールなどの別のコントロールによって表示される値を変更する場合に使用できます。
スクロール バー コントロールの値に基づくラベル コントロールを変更する方法
ラベル コントロールの Caption プロパティをスクロール バー コントロールの Value プロパティの現在の設定値に変更するには、以下の手順を実行します。
| 1. |
Excel を起動し、新しい空白のブックを開きます。
|
| 2. |
[ツール] メニューの [マクロ] をポイントし、[Visual Basic Editor] をクリックします。
|
| 3. |
[挿入] メニューの [ユーザー フォーム] をクリックして、ユーザー フォームをブックに挿入します。
|
| 4. |
スクロール バー コントロールをユーザー フォームに追加します。
|
| 5. |
ラベル コントロールをユーザー フォームに追加します。
|
| 6. |
ScrollBar1 コントロールをダブルクリックして、スクロール バー コントロールのコード ウィンドウを表示します。
|
| 7. |
コード ウィンドウで、ScrollBar1_Change イベントに次のコードを入力します。
Private Sub ScrollBar1_Change()
Label1.Caption = ScrollBar1.Value
End Sub |
| 8. |
[実行] メニューの [Sub/ユーザー フォームの実行] をクリックします。
|
スクロール バー コントロールを使用してスクロールすると、Label1 がスクロール バー コントロールの現在の値で更新されます。
先頭へ戻る
スピン ボタン コントロール
スクロール バー コントロールに似たスピン ボタン コントロールは、ラベル コントロールなどの別のコントロールの値を増減させるためによく使用されます。スピン ボタン コントロールがクリックされたときに、値がどのくらい変更されるかは、SmallChange プロパティで決定されます。
テキスト ボックス コントロールに格納された日付を増減させるスピン ボタン コントロールを追加する方法
テキスト ボックス コントロールに格納された日付を増減させるスピン ボタン コントロールを追加するには、以下の手順を実行します。
| 1. |
Excel を起動し、新しい空白のブックを開きます。
|
| 2. |
[ツール] メニューの [マクロ] をポイントし、[Visual Basic Editor] をクリックします。
|
| 3. |
[挿入] メニューの [ユーザー フォーム] をクリックして、ユーザー フォームをブックに挿入します。
|
| 4. |
スピン ボタン コントロールをユーザー フォームに追加します。
|
| 5. |
テキスト ボックス コントロールをユーザー フォームに追加します。
|
| 6. |
SpinButton1 コントロールをダブルクリックして、スピン ボタン コントロールのコード ウィンドウを表示します。
|
| 7. |
コード ウィンドウで、SpinButton1_SpinUp イベントに次のコードを入力します。
Private Sub SpinButton1_SpinUp()
TextBox1.Text = DateValue(TextBox1.Text) + 1
End Sub
|
| 8. |
コード ウィンドウで、SpinButton1_SpinDown イベントに次のコードを入力します。
Private Sub SpinButton1_SpinDown()
TextBox1.Text = DateValue(TextBox1.Text) - 1
End Sub
|
| 9. |
コード ウィンドウで、UserForm_Initialize イベントに次のコードを入力します。
Private Sub UserForm_Initialize()
TextBox1.Text = Date
End Sub
|
| 10. |
[実行] メニューの [Sub/ユーザー フォームの実行] をクリックします。
|
ユーザー フォームが表示されると、TextBox1 に現在の日付が表示されます。スピン ボタン コントロールをクリックすると、日付が 1 日単位で増減します。
この例で SpinButton1 の SmallChange プロパティを変更しても、SpinButton1 をクリックしたときに TextBox1 内のエントリが変更される日数に影響はありません。この日数は、SpinButton1 の SpinUp イベントと SpinDown イベントに割り当てたプロシージャによってのみ決定されます。
スピン ボタン コントロールの関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
213224 (http://support.microsoft.com/kb/213224/)
[XL2000] 日付にスピン ボタンを使用する Visual Basic のサンプル
先頭へ戻る
RefEdit コントロール
RefEdit コントロールの動作は、Excel 内に作成される参照ボックスの動作と似ています。Value プロパティを使用して、RefEdit コントロールに格納されている現在のセルのアドレスを取得できます。
RefEdit コントロールを使用して、ユーザーが選択したセル範囲に値を設定する方法
RefEdit コントロールを使用してセルを設定するには、以下の手順を実行します。
| 1. |
Excel を起動し、新しい空白のブックを開きます。
|
| 2. |
[ツール] メニューの [マクロ] をポイントし、[Visual Basic Editor] をクリックします。
|
| 3. |
[挿入] メニューの [ユーザー フォーム] をクリックして、ユーザー フォームをブックに挿入します。
|
| 4. |
RefEdit コントロールをユーザー フォームに追加します。
|
| 5. |
コマンド ボタン コントロールをユーザー フォームに追加します。
|
| 6. |
CommandButton1 コントロールをダブルクリックして、コマンド ボタン コントロールのコード ウィンドウを表示します。
|
| 7. |
コード ウィンドウで、CommandButton1_Click イベントに次のコードを入力します。
Private Sub CommandButton1_Click()
Dim MyRange As String
MyRange = RefEdit1.Value
Range(MyRange).Value = "test"
Unload Me
End Sub |
| 8. |
[実行] メニューの [Sub/ユーザー フォームの実行] をクリックします。
ユーザー フォームが表示されます。
|
| 9. |
RefEdit コントロールのボタンをクリックします。
ユーザー フォームが折りたたまれることに注意してください。
|
| 10. |
A1:A5 などのセル範囲を選択し、RefEdit コントロールのボタンをクリックしてユーザー フォームを展開します。
|
| 11. |
[CommandButton1] をクリックします。
|
ユーザー フォームが閉じ、選択したセル範囲に "test" という単語が設定されます。
RefEdit コントロールの関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
213776 (http://support.microsoft.com/kb/213776/)
[XL2000] ユーザー フォームで RefEdit コントロールを使用する方法
先頭へ戻る
イメージ コントロール
イメージ コントロールの目的は、ユーザー フォーム上に画像を表示することです。実行時にイメージ コントロールに画像を割り当てるには、LoadPicture 関数を使用します。
イメージ コントロールに画像を読み込む方法
クリックしたときに、読み込む画像を選択するよう求めるメッセージを表示するイメージ コントロールを挿入するには、以下の手順を実行します。
| 1. |
Excel を起動し、新しい空白のブックを開きます。
|
| 2. |
[ツール] メニューの [マクロ] をポイントし、[Visual Basic Editor] をクリックします。
|
| 3. |
[挿入] メニューの [ユーザー フォーム] をクリックして、ユーザー フォームをブックに挿入します。
|
| 4. |
イメージ コントロールをユーザー フォームに追加します。
|
| 5. |
Image1 コントロールをダブルクリックして、イメージ コントロールのコード ウィンドウを表示します。
|
| 6. |
コード ウィンドウで、Image1_Click イベントに次のコードを入力します。
Private Sub Image1_Click()
Dim fname As String
' Display the Open dialog box.
fname = Application.GetOpenFilename(filefilter:= _
"Bitmap Files(*.bmp),*.bmp", Title:="Select Image To Open")
' If you did not click Cancel...
If fname <> "False" Then
' Load the bitmap into the Image control.
Image1.Picture = LoadPicture(fname)
' Refresh the UserForm.
Me.Repaint
End If
End Sub
|
| 7. |
[実行] メニューの [Sub/ユーザー フォームの実行] をクリックします。
ユーザー フォームが表示されます。
|
| 8. |
イメージ コントロールをクリックします。
イメージ コントロールをクリックすると、[Select Image To Open] ダイアログ ボックスが表示され、コントロールに挿入するビットマップ ファイルを選択できます。
|
イメージ コントロールの関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
213732 (http://support.microsoft.com/kb/213732/)
[XL2000] イメージ コントロールで LoadPicture 関数を使用する方法
先頭へ戻る
関連情報
オブジェクト ブラウザ
特定のコマンドのすべてのプロパティおよびメソッドの完全な一覧は、オブジェクト ブラウザに表示されます。Excel でこの情報を確認するには、以下の手順を実行します。
| 1. |
[ツール] メニューの [マクロ] をポイントし、[Visual Basic Editor] をクリックします。
|
| 2. |
[表示] メニューの [オブジェクト ブラウザ] をクリックします。
|
| 3. |
[検索文字列] ボックスに必要なコントロールの名前を入力し、[検索] をクリックします。
|
オブジェクト ブラウザの使用方法の詳細については、Visual Basic Editor で [ヘルプ] メニューの [Microsoft Visual Basic ヘルプ] をクリックします。次に、Office アシスタントまたはアンサー ウィザードに
オブジェクト ブラウザと入力し、[検索の開始] をクリックして表示されるトピックを参照してください。
コンピュータに Microsoft Excel ヘルプをインストールする方法の関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
231946 (http://support.microsoft.com/kb/231946/)
[OFF2000] 単一の Office プログラムまたはコンポーネントを追加または削除する方法
先頭へ戻る