Application.CreateControl メソッド (Access)

CreateControl メソッドは、開いている指定したフォームにコントロールを作成します。 たとえば、ユーザーが特定のフォームを簡単に作成できるカスタム ウィザードを作成しようとするとします。 ウィザードの CreateControl メソッドを使用して、適切なコントロールをフォームに追加します。

構文

CreateControl (FormName, ControlType, Section, Parent, ColumnName, Left, Top, Width, Height)

expressionApplication オブジェクトを 表す変数。

パラメーター

名前 必須 / オプション データ型 説明
FormName 必須 String コントロールを作成するフォームやレポートの名前を指定します。
ControlType 必須 AcControlType 作成するコントロールの種類を表す AcControlType 定数。
Section 省略可能 AcSection 新しいコントロールを含むセクションを識別する AcSection 定数。
Parent 省略可能 バリアント型 (Variant) 付属するコントロールの親コントロールの名前を指定します。 親コントロールがないコントロールの場合は、この引数に長さ 0 の文字列を指定するか、省略します。
ColumnName 省略可能 バリアント型 (Variant) コントロールをデータ バインド コントロールにする場合は、コントロールをバインドするフィールドの名前。
左、上 省略可能 バリアント型 (Variant) コントロールの左上隅の座標 (twips 単位)。
Width, Height 省略可能 バリアント型 (Variant) コントロールの幅と高さを表す数式を、twip 単位で指定します。

戻り値

コントロール

注釈

カスタム ウィザードの CreateControl メソッドと CreateReportControl メソッドを使用して、フォームまたはレポートにコントロールを作成します。 どちらのメソッドも Control オブジェクトを返します。

CreateControl メソッドおよび CreateReportControl メソッドは、それぞれフォーム デザイン ビューまたはレポート デザイン ビューでのみ使用します。

Parent 引数を使用して、メイン コントロールと下位コントロールの間の関係を特定します。 たとえば、テキスト ボックスにラベルを追加する場合に、テキスト ボックスが主 (親) コントロールで、ラベルが従属 (子) コントロールになります。 ラベル コントロールを作成するときは、その Parent 引数を、親コントロールの名前を識別する文字列に設定します。 テキスト ボックスを作成するときは、その Parent 引数を長さ 0 の文字列に設定します。

また、チェック ボックス、オプション ボタン、またはトグル ボタンを作成するときにも、Parent 引数を設定します。 オプション グループは、中に含まれるチェック ボックス、オプション ボタン、またはトグル ボタンの親コントロールになります。 親コントロールを持つことができるのは、ラベル、チェック ボックス、オプション ボタン、およびトグル ボタンのみです。 これらのコントロールは、親コントロールがない場合でも作成できます。

作成するコントロールの種類と、テーブルのフィールドに連結するかどうかに応じて、 ColumnName 引数を設定します。 フィールドに連結できるコントロールには、テキスト ボックス、リスト ボックス、コンボ ボックス、オプション グループ、および連結オブジェクト フレームがあります。 また、トグル ボタン、オプション ボタン、およびチェック ボックスは、オプション グループに含まれていない場合にフィールドと連結できます。

ColumnName 引数にフィールドの名前を指定する場合は、そのフィールドに連結されたコントロールを作成します。 コントロールのすべてのプロパティは、自動的に対応するフィールドのプロパティと同じ内容に設定されます。 たとえば、コントロールの ValidationRule プロパティの値は、フィールドに対するそのプロパティの値と同じになります。

注:

ウィザードを使ってフォームまたはレポートに新しいコントロールを作成する場合に、フォームまたはレポートはデザイン ビューで開いておく必要があります。

フォームまたはレポートからコントロールを削除するには、 DeleteControl メソッドと DeleteReportControl メソッドを使用します。

次の例では、最初に "受注" テーブルに基づいて新しいフォームを作成します。 次に、 CreateControl メソッドを使用して、フォーム上にテキスト ボックス コントロールとラベル コントロールを作成します。

Sub NewControls() 
 Dim frm As Form 
 Dim ctlLabel As Control, ctlText As Control 
 Dim intDataX As Integer, intDataY As Integer 
 Dim intLabelX As Integer, intLabelY As Integer 
 
 ' Create new form with Orders table as its record source. 
 Set frm = CreateForm 
 frm.RecordSource = "Orders" 
 ' Set positioning values for new controls. 
 intLabelX = 100 
 intLabelY = 100 
 intDataX = 1000 
 intDataY = 100 
 ' Create unbound default-size text box in detail section. 
 Set ctlText = CreateControl(frm.Name, acTextBox, , "", "", _ 
 intDataX, intDataY) 
 ' Create child label control for text box. 
 Set ctlLabel = CreateControl(frm.Name, acLabel, , _ 
 ctlText.Name, "NewLabel", intLabelX, intLabelY) 
 ' Restore form. 
 DoCmd.Restore 
End Sub

サポートとフィードバック

Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。