エクセルVBA(X)ユーザーフォーム開発入門

VBAのユーザーフォームがUIを持つユーザー・インターフェースを指し実行可能なプログラムも可能性があるため、実行時に、Windowsシステムで実行する同じ(この文は厳格ではない実行可能なプログラムに似た別のウィンドウを、ポップアップ表示されますそれは)UIのない​​唯一のコマンド・ウィンドウです。ウィンドウインタフェースであるより具体的なポイントは、同じページ上のフォームに記入して、テキストフィールドが含まれているチェックボックスを、ラジオボタン、ドロップダウンリストする可能性があります。以下に示すように、もう少し具体的に、これは次のとおりです。

ユーザーフォームの例

1.ユーザーインターフェイスのデザイン

上記のように、UIデザインの一部は、マイクロソフトの特徴は、直接ドラッグドラッグを達成することができ、実際には非常に簡単です。(各種ボタン、入力ボックス、等の形態に、即ち、または要素と呼ばれる)の各属性を設定するための制御は、後に実行されるデフォルトの左下隅にそれを選択することができる「属性」リストボックス、項目名が上部からの距離のような、ボタン、前景色、背景色、テキストが表示さ、幅、高さ、フォントの色、フォントサイズ、左サイドからの距離を含んで提供されてもよく、それは非常に簡単です。「プロパティ」ボックスが表示されない場合は、「ビュー」の上部のメニューバーにある「プロパティウィンドウ」を選択することができ、それが表示されます。

2.ユーザーとの対話

ボタン2.1イベント

それらへのボタンの形で直接ダブルクリックして、以下に示すように、あなたがイベントに開発インターフェイスボタンを入力することができ、デフォルトでは、イベントをクリックすることです

左上隅の赤いライン部上の図に注意を払うが、ここで、右上のボタンの名前がボタンのイベントを示して示しクリックイベントでClick彼らの権利まで各個人をクリックし、ドロップダウン選択ボックスですどちらも、他の方法は、三角形さらにコントロールとコントロールが各対応は以下のことがわかります

あなたが他のイベントを選択した場合は、(私は変更しようとしていない)VBEは自動的にボタンの名前と名前にイベント名に基づいており、このイベントの署名生成機能を提供しますので、これは関数名を変更することはできませんする必要があります

他のボタンと同様のイベントは、詳細には触れません。

2.2コントロールの値を取得

コントロールの多くは、それが1例ずつではありません、ツールとしてだけでいくつかの例を引用するので、だけでなく、同様の他、それは名前でその値を取得できるようにするには、プロパティリストに呼ばれ、通常は何

テキストボックス

TBXという名前のテキストボックスを仮定し、経由tbx.Valueまたはtbx.Textテキストボックスにコンテンツへのアクセス権を持っています

チェックボックス

CBXという名前のチェックボックスを想定しcbx.Value、それが選択されている場合は、ラジオボタンの値を取得することができ、値はtrue、そうでない場合はfalseです。することによりcbx.Caption得られ、このテキストに対応するチェックボックス

ラジオボタン

ラジオボタンを通じて、obtnという名前と仮定するとobtn.Value、それが選択されている場合は、ラジオボタンの値を取得することができ、値はtrue、そうでない場合はfalseです。することによりcbx.Caption得られ、このテキストに対応するチェックボックス

カレンダーの上に3.すべてのコントロール

例えば、フォームは、チェックボックス複数の、それが選択されているか否かを判断する一つ一つがあり、この場合は、チェックボックスタイプかどうかを決定することによって制御を得るために、すべてのコントロール上のエポックと考えることができます。

次のコードを見てください:

orderStr = ""
For Each ctrls In Me.Controls
    If TypeName(ctrls) = "CheckBox" Then
        If ctrls.Value = True Then
            orderStr = orderStr & "||" & ctrls.Caption
        End If
    End If
Next ctrls

Me.Controlsこれは、固定された文言であり、Me現在のフォームに代わって、およびControlsフォーム上のすべてのコントロール。TypeName各コントロールの種類を決定するために、異なるコントロールの異なる操作を行うことができる機能

4.コントロールを動的に生成します

すなわち、もはやドラッグプル制御を設定するために人工的な方法を使用しませんが、動的にVBAの条件コードに基づいて、フォームにコントロールを追加します。

コードを見てください:

For Each order In orderArr
    Set newCbk = form_combinedModel.Controls.Add("Forms.CheckBox.1")
    With newCbk
        .Left = 30
        .Top = y
        .Width = 80
        .Height = 18
        .Caption = order
    End With
    y = y + gap
    panelH = panelH + gap
Next order

ここではorderArrあなたが使用できる配列で、For Eachすべてその上に歴史が。二行目に焦点を当て、ここform_combinedModelれる名前の形式である.Controls.Add方法は、新しいコントロールを追加することができます。このメソッドのパラメータは、サンプル・コードは、チェックボックスに追加された対応するパラメータを使用するように追加する必要があるコントロールの種類、固定されて、対応するForms.CheckBox.1、このパラメータができ、ここで見つけられます。

また、新たに追加されたコントロールオブジェクトであることに留意すべきであるので、変数の前に使用する必要があるSetキーワード。以下のサンプル・コード・Withステートメントは、その位置、幅、高さ、表示テキスト(左、ピッチから)提供されるコントロールの新しいプロパティを設定するために使用されています


チュートリアルのこのシリーズの他の記事

エクセルVBAエントリ(ゼロ)
のExcel VBAエントリ(a)は、データ型
のExcel VBA項目(ii)の配列や辞書
のExcel VBAエントリ(C)1-選択された制御条件を流れ
のExcel VBAエントリ(4個)のプロセス制御ループは、2-コントロール
取得のExcel VBAを(e)のエクセルオブジェクト操作
エクセルVBAのエントリ(f)のプロシージャおよびファンクション
エクセルVBAエントリー(7)コメントを、マクロボタンやエラー処理
(8)セルは、Excel VBAを取得国境
エクセルVBAエントリを(IX)のオペレーティング・ワークシート
(エクセルVBAのエントリをj)は、ユーザーフォームの開発

おすすめ

転載: www.cnblogs.com/wuzhiblog/p/vba_ten.html