Application.CreateControl メソッド (Access)

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

構文

CreateControl (FormNameControlTypeSectionParentColumnNameLeftTopWidthHeight)

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

パラメーター

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

戻り値

コントロール

注釈

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

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

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

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

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

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

注:

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

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

次の例では、まず Orders テーブルに基づいて新しいフォームを作成します。 次に、 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 のサポートおよびフィードバックを参照してください。