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…
第10回.標準モジュールとフォーム間のデータ受け渡しⅡ
1.シートのセルを使う 2.標準モジュールのグローバル変数を使う 3.標準モジュールからフォームのコントロールを操作する 4.Subプロシージャーの引数を使う 5.Functionプロシージャーの戻り値を使う。2.3.を解説しました。では、いよいよ4.5.を解説しましょう。
第11回.コンボボックス(ComboBox)の追加
ユーザーフォームで良く使われるコントロールは、ラベル、テキストボックス これは当然ですが、その次に良く使われるものは、コンボボックス、リストボックス、チェックボックス、オプションボタンになるでしょう。今回から、この3つのコントロールの使い方の解説をします。


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

VBAにおける変数のメモリアドレスについて|VBA技術解説(11月8日)
空文字列の扱い方と処理速度について(""とvbNullString)|VBA技術解説(1月7日)
Errオブジェクトとユーザー定義エラー|VBA入門(11月5日)
シングルクォートの削除とコピー(PrefixCharacter)|VBA技術解説(11月4日)
ユーザー定義型の制限とクラスとの使い分け|VBA技術解説(11月3日)
クリップボードに2次元配列を作成してシートに貼り付ける|VBA技術解説(11月1日)
VBAクラスを使ったイベント作成(Event,RaiseEvent,WithEvents)|VBA技術解説(10月31日)
VBAクラスのAttributeについて(既定メンバーとFor Each)|VBA技術解説(10月19日)
VBAの用語について:ステートメントとは|VBA技術解説(10月16日)
VBAのマルチステートメント(複数のステートメントを同じ行に)|VBA技術解説(10月14日)


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

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.ひらがな⇔カタカナの変換|エクセル基本操作
9.空白セルを正しく判定する方法(IsEmpty,IsError,HasFormula)|VBA技術解説
10.セルに文字を入れるとは(Range,Value)|VBA入門



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

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


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




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