コントロールの操作・参照方法
フォームやレポート内に配置されたテキストボックスやコンボボックス等の部品をコントロールと呼びます。コントロール内には様々な種類があり、データの入力内容に応じて使い分けることで、使いやすいフォームを設定することができます。
【標準モジュールからコントロールを参照する書式】
Forms(“フォーム名”).コントローム名.メソッドまたはプロパティ
【フォームからコントロールを参照する書式】
Me.コントローム名.メソッドまたはプロパティ
【標準モジュールからサブフォームのコントロールを参照する書式】
Forms(“フォーム名”).サブフォーム名.Form.コントローム名.メソッドまたはプロパティ
【フォームからサブフォームのコントロールを参照する書式】
Me.コントローム名.サブフォーム名.Form.メソッドまたはプロパティ
主なコントロールに共通するプロパティ
Cptionプロパティ/Nameプロパティ
Captionプロパティは、コントロールの表題を返します。Nameプロパティはコントロールの名前を返します。
【書式】
コントロール.Caption
コントロール.Text
【プロパティシート】
Caption:コントロールまたはフォーム-書式-表題
Name:コントロールまたはフォーム-その他-名前
Private Sub cmdCaption_Click()
MsgBox Me.Caption & "/" & Me.Name
End Sub
Textプロパティ/Valueプロパティ
Textプロパティはコントロールの文字列を返します。Valueプロパティはコントロールの値を返します。
【書式】
コントロール.Text
コントロール.Value
Private Sub cmdText_Click()
'Textプロパティはコントロールにフォーカスがあることが前提です。
DoCmd.GoToControl ("会員番号")
MsgBox Me.会員番号.Text
MsgBox Me.会員番号.Value
End Sub
ForeColorプロパティ/BackColorプロパティ
ForColorプロパティはコントロールのテキストの色を設定します。BackColorプロパティはコントロールの背景色を設定します。
【書式】
コントロール.ForeColor
コントロール.BackColor
【プロパティシート】
コントロール-書式-背景色・前景色
Private Sub cmdColor_Click()
Me.cmdColor.ForeColor = vbRed '赤を表す定数です。
Me.cmdColor.BackColor = vbBlack '黒を表す定数です。
End Sub

Lockedプロパティ/Enabledプロパティ/Visibleプロパティ
Lockedプロパティはコントロールのデータが編集できるかどうか、Enabledプロパティはコントロールが有効か無効か、Visibleプロパティはコントロールを表示するかどうかをそれぞれ設定します。
【書式】
コントロール.Locked=True または False
コントロール.Enabled=True または False
コントロール.Visible=True または False
【プロパティシート】
Lockedプロパティ:コントロール-データ-編集ロック
Enabledプロパティ:コントロール-データ-使用可能
Visibleプロパティ:コントロール-書式-可視
Sub TextBoxTest()
With Me
'Locked=Trueは編集ができなくなります。
.txt0.Locked = True
.txt0.Value = "Locked = True"
'Enabled = false1は非活性になり、フォーカスを移すことができなくなります。
.txt1.Enabled = False
.txt1.Value = "Enabled = False"
'Viseble=Falseは非表示になります。
.txt2.Visible = False
End With
End Sub

オプションボタンに関するプロパティ
OptionValueプロパティ
オプショングループ内のコントロールに割り当てられた数値です。
【書式】
コントロール.OptionValue
Private Sub cmdOption_Click()
Select Case Me.flaSample
Case Me.opt1.OptionValue
MsgBox "オプション1が選択されています。"
Case Me.opt2.OptionValue
MsgBox "オプション2が選択されています。"
Case Else
MsgBox "オプションが選択されていません。"
End Select
End Sub
リストボックス・コンボボックスに関するプロパティ
RowSourceTypeプロパティ/RowSouceプロパティ
リストボックスやコンボボックスに表示するソースのタイプを設定します。
【書式】
コントロール.RowSourceType
コントロール.RowSource
【プロパティシート】
RowSourceTypeプロパティ:コントロール-データ-値集合タイプ
RowSourceプロパティ:コントロール-データ-値集合ソース
RowSourceType の設定値 | RowSource の設定値 | 説明 |
---|---|---|
Table/Query | テープル名、クエリ名、SQL | 元になるテーブル名等を指定します。 |
Value List | “値1;値2;値3・・・” | 元になる値を「;(セミコロン)」で区切って指定します。 |
Field List | テープル名、クエリ名、SQL | フィールド名リストの元になるテーブル名等を指定します。 |
Private Sub cmdList1_Click()
With Me.lstSample
'※T_会員名簿の最初のフィールドの値を表示します。
.RowSourceType = "Table/Query"
.RowSource = "T_会員名簿"
End With
End Sub
Private Sub cmdList2_Click()
With Me.lstSample
'指定した値を表示します。
.RowSourceType = "Value List"
.RowSource = "Value1;Value2;Value3"
End With
End Sub
Private Sub cmdList3_Click()
With Me.lstSample
'※T_会員名簿のフィールド名を表示します。
.RowSourceType = "Field List"
.RowSource = "T_会員名簿"
End With
End Sub

RowSourceTypeプロパティが「Value List」の場合、値の追加・削除が可能です。
【書式(削除)】
コントロール.AddItem 項目,[追加位置]
【書式(削除)】
コントロール.RemoveItem 項目 または 項目番号
Private Sub cmdAdd_Click()
With Me.lstSample
.AddItem "ValueX"
End With
End Sub
Private Sub cmdRemove_Click()
With Me.lstSample
.RemoveItem 0
End With
End Sub
ColumnCountプロパティ
リストボックスやコンボボックスに表示される列数を設定します。
【書式】
コントロール.ColunColunt
【プロパティシート】
コントロール-書式-列数
Private Sub cmdRetsusu_Click()
With Me.lstSample
.ColumnCount = 2
.RowSourceType = "Table/Query"
.RowSource = "T_会員名簿"
End With
End Sub
ListIndexプロパティ
リストボックスやコンボボックスで選択された項目の番号を返します。
【書式】
コントロール.ListIndex
※行数は0から始まります。データが選択されていない場合は-1を返します。
Private Sub cmdLIstIndex_Click()
Dim i As Long
With Me.lstSample
i = .ListIndex
If i <> -1 Then
MsgBox i + 1 & "行目を選択。"
Else
MsgBox "選択されていません。"
End If
End With
End Sub
Selectedプロパティ
リストボックスやコンボボックスの各項目が選択されているかどうかを設定します。
【書式】
コントロール.Selected(項目番号)=True または False
Private Sub cmdSelcted_Click()
Dim i As Long
'選択された行をクリアし次の行を選択状態にする。
With Me.lstSample
i = .ListIndex
.Selected(i) = False
.Selected(i + 1) = True
End With
End Sub
BoundColumnプロパティ
リストボックスやコンボボックスのどの列をコントロールの値として使用するか設定します。
【書式】
コントロール.BoundColmn=列番号
【プロパティシート】
コントロール-データ-連結列
※0を設定するとListIndexの値がセットされます。
Private Sub cmdBoundColmn_Click()
'リストボックスに3列表示し2列目をコントロールの値として設定する。
With Me.lstSample
.ColumnCount = 3
.BoundColumn = 2
.RowSourceType = "Table/Query"
.RowSource = "T_会員名簿"
End With
End Sub
その他のプロパティ・メソッド
RecordSelectorsプロパティ
フォームにレコードセレクタを表示するかどうかを設定します。
【書式】
オブジェクト.RecordsetSelectors = True または False
【プロパティシート】
フォーム-書式-レコードセレクタ
Private Sub cmdRecordSelectoors_Click()
With Me
If .RecordSelectors Then
.RecordSelectors = False
Else
.RecordSelectors = True
End If
End With
End Sub

SetFocusプロパティ
指定したフォームやコントロールにフォーカスを移動します。
【書式】
コントロール.SetFocus
Private Sub cmdSetFocus_Click()
Me.txt0.SetFocus
End Sub
コメント