Excelユーザーフォーム入門
第3回.コントロールの追加(コマンドボタン)

Excelマクロのユーザーフォームの基礎、エクセルVBAの入門解説
最終更新日:2013-02-18

第3回.コントロールの追加(コマンドボタン)


何もないフォームでは何もできませんので、


とりあえず、部品を配置しましょう。

この部品をコントロールと呼びます。

使えるコントロールは、

マクロ VBA サンプル画像

このツールボックスにあるアイコンが使えるコントロールになります。

ここには、他のコントロールを追加する事もできますが、それは後々。

マクロ VBA サンプル画像 これは、配置されているコントロールを選択する場合に使います。

マウスをアイコンの上に置くと、ポップアップのメッセージが表示されますので、

それぞれのアイコンの意味は分かるようになっています。

では、まずはコマンドボタンを配置してみましょう。

アイコンは、マクロ VBA サンプル画像これです。

これをクリックして、フォーム上でドラッグしてサイズを決定します。

マクロ VBA サンプル画像

こんな感じです。

このボタンは、フォームを閉じるボタンにします。

プロパティで、オブジェクト名とCaptionを変更しましょう。

オブジェクト名:btnCancel
Caption:閉じる


マクロ VBA サンプル画像

このように指定します。

すると、

マクロ VBA サンプル画像

このように、ボタンの名称も変更されます。

次は、このボタンをダブルクリックするか、

右クリックで、「コードの表示」

マクロ VBA サンプル画像

マクロ VBA サンプル画像

このように、そのボタンのイベントが自動で追加されます。

ただし、追加されるイベントは、コントロールの種類によって、

デフォルトのイベントが追加されますので、適宜変更が必要になる場合があります。

ボタンの場合は、Clickイベントが追加されます、まあ、ボタンならほとんどこれで良いですね。

では、このイベントを以下のように書き換えます。

Private Sub btnCancel_Click()
  Unload Me
End Sub

これで、閉じるボタンの完成です。


Unload Meは、
Unload frmSample


のように、フォーム名を書いても良く、ネットでは良く見かけますが、

フォーム毎に、いちいち変更するのも面倒ですし、

ここは、Meとして自分自信を閉じると明示しておいた方が良いでしょう。

では、前回作った、

Private Sub btnCancel_Click()
  Unload Me
End Sub


これを実行してみましょう。


マクロ VBA サンプル画像

「閉じる」をクリックして、フォームが閉じる事を確認して下さい。




同じテーマ「Excelユーザーフォーム入門」の記事

第1回.ユーザーフォームを挿入

とにかく、まずは、ユーザーフォームの挿入です。すると このようになります。これがユーザーフォームです。サイズはドラッグで変更できます。「ツールボックス」は、このフォームに配置する部品が並んでいるものですので、次回以降に、徐々に説明していきます。
第2回.フォームのプロパティ
プロパティはたくさんありますね。これ全部理解するのは大変です、いずれは、全て理解するに越したことはないですが、とりあえず、必要最低限のプロパティだけは把握しておきましょう。SpecialEffect フォームの枠のスタイルを設定することができます。
第3回.コントロールの追加(コマンドボタン)
第4回.コントロールの位置・サイズ調整
とりあえず、OKボタンを追加しましょう。「閉じる」ボタンも移動させましょう。ツールボックスが非表示になっている場合は、「表示」→「ツールボックス」で表示させて下さい。コマンドボタンを追加して、オブジェクト名:btnOk Caption:OK として下さい。
第5回.ラベルの追加
固定文字を表示するものが、ラベルです。では、ラベルを追加します。3個程追加してみましょう。最初に配置する時は、適当な位置・サイズでよいです。前回の、第4回.コントロールの位置・サイズ調整 後でまとめて指定すれば良いでしょう。
第6回.テキストボックス(TextBox)の追加
前回は、ここまででした。では、テキストボックスを追加しましょう。オブジェクト名は、プリフィックスにtxtを付けて名前はラベルと合わせます。つまり、txtコード txt漢字名称 txtカナ名称 となります。
第7回.テキストボックス(TextBox)の値をセルへ
前回までに作成したのが、これでした。「OK」ボタンを押下すると、このテキストボックスに入力した値を、シートのセルに値を設定するようにします。まずは、そのシートを用意します。とりあえず、こんな感じで良いでしょう。
第8回.セルの値をテキストボックスへ
今回は、シートの実行ボタンを押下したら、アクティブセルの行の値をフォームに表示してみましょう。フォームのコードを表示しましょう。右クリックします。フォーム上で右クリックでも良いです。また、「表示」→「コード」…ショートカットはF7です。
第9回.標準モジュールとフォーム間のデータ受け渡しⅠ
今回はフォームが起動された時起動したシートのアクティブセルの行数を知る方法について解説します。前回までに作成したものは標準モジュールにフォームモジュールにPrivateSubUserForm_Initialize() DimiAsLong WithWorksheets(_顧客マスタ_) i=ActiveCell.Row Me.txtコード.Text=.C…
第10回.標準モジュールとフォーム間のデータ受け渡しⅡ
1.シートのセルを使う 2.標準モジュールのグローバル変数を使う 3.標準モジュールからフォームのコントロールを操作する 4.Subプロシージャーの引数を使う 5.Functionプロシージャーの戻り値を使う。2.3.を解説しました。では、いよいよ4.5.を解説しましょう。
第11回.コンボボックス(ComboBox)の追加
ユーザーフォームで良く使われるコントロールは、ラベル、テキストボックス これは当然ですが、その次に良く使われるものは、コンボボックス、リストボックス、チェックボックス、オプションボタンになるでしょう。今回から、この3つのコントロールの使い方の解説をします。


新着記事NEW ・・・新着記事一覧を見る

文字列結合&でコンパイルエラーになる理由|VBA技術解説(9月19日)
Byte配列と文字コード関数について|VBA技術解説(8月20日)
PowerQueryの強力な機能をVBAから利用する方法|VBA技術解説(8月4日)
練習問題31(セル結合を解除して値を埋める)|VBA練習問題(7月30日)
練習問題30(マトリックス→リスト形式)|VBA練習問題(7月25日)
Applicationを省略できるApplicationのメソッド・プロパティ一覧|VBA技術解説(7月22日)
コレクション(Collection)の並べ替え(Sort)に対応するクラス|VBA技術解説(7月20日)
CSVの読み込み方法(ジャグ配列)|VBAサンプル集(7月15日)
その他のExcel機能(グループ化、重複の削除、オートフィル等)|VBA入門(7月14日)
オートフィルタ退避回復クラスを複数シート対応させるVBAクラス|VBA技術解説(7月6日)


アクセスランキング ・・・ ランキング一覧を見る

1.最終行の取得(End,Rows.Count)|VBA入門
2.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
3.RangeとCellsの使い方|ExcelマクロVBA入門
4.Range以外の指定方法(Cells,Rows,Columns)|VBA入門
5.変数とデータ型(Dim)|ExcelマクロVBA入門
6.繰り返し処理(For Next)|ExcelマクロVBA入門
7.マクロって何?VBAって何?|ExcelマクロVBA入門
8.セルに文字を入れるとは(Range,Value)|VBA入門
9.ひらがな⇔カタカナの変換|エクセル基本操作
10.空白セルを正しく判定する方法(IsEmpty,IsError,HasFormula)|VBA技術解説



  • >
  • >
  • >
  • コントロールの追加(コマンドボタン)

  • このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。


    記述には細心の注意をしたつもりですが、
    間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
    なお、掲載のVBAコードは自己責任で使ってください。万一データ破損等の損害が発生しても責任は負いません。




    このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
    本文下部へ