エクセルの神髄
Excelユーザーフォーム入門

ExcelマクロVBAのユーザーフォームの基礎、初心者向け入門解説、記事の目次です
最終更新日:2018-03-12

Excelユーザーフォーム入門


エクセル(Excel)マクロ(VBA)をやっていれば、どうしてもユーザーフォームを使いたくなります、


使いたくなるというより、使った方が良い場合が出てきます。

ただし、ユーザーフォームを使いこなすには、
各種コントロールの特性を理解し、イベントについても深い知識が必要になりす。


ここでは、ユーザーフォーム作成に当たっての、各種技術を伝えていきます。

  • 第1回.ユーザーフォームを挿入
    とにかく、まずは、ユーザーフォームの挿入です。すると このようになります。これがユーザーフォームです。サイズはドラッグで変更できます。「ツールボックス」は、このフォームに配置する部品が並んでいるものですので、次回以降に、徐々に説明していきます。

  • 第2回.フォームのプロパティ
    プロパティはたくさんありますね。これ全部理解するのは大変です、いずれは、全て理解するに越したことはないですが、とりあえず、必要最低限のプロパティだけは把握しておきましょう。プロパティ 説明 ActiveControl コンテナコントロール上のアクティブコントロールを取得または設定します。

  • 第3回.コントロールの追加(コマンドボタン)
    何もないフォームでは何もできませんので、とりあえず、部品を配置しましょう。この部品をコントロールと呼びます。使えるコントロールは、このツールボックスにあるアイコンが使えるコントロールになります。ここには、他のコントロールを追加する事もできますが、それは後々。

  • 第4回.コントロールの位置・サイズ調整
    とりあえず、OKボタンを追加しましょう。「閉じる」ボタンも移動させましょう。ツールボックスが非表示になっている場合は、「表示」→「ツールボックス」で表示させて下さい。コマンドボタンを追加して、オブジェクト名:btnOk Caption:OK として下さい。

  • 第5回.ラベルの追加
    固定文字を表示するものが、ラベルです。では、ラベルを追加します。3個程追加してみましょう。最初に配置する時は、適当な位置・サイズでよいです。前回の、第4回.コントロールの位置・サイズ調整 後でまとめて指定すれば良いでしょう。

  • 第6回.テキストボックスの追加
    前回は、ここまででした。では、テキストボックスを追加しましょう。オブジェクト名は、プリフィックスにtxtを付けて名前はラベルと合わせます。つまり、txtコード txt漢字名称 txtカナ名称 となります。

  • 第7回.テキストボックスの値をセルへ
    前回までに作成したのが、これでした。「OK」ボタンを押下すると、このテキストボックスに入力した値を、シートのセルに値を設定するようにします。まずは、そのシートを用意します。とりあえず、こんな感じで良いでしょう。

  • 第8回.セルの値をテキストボックスへ
    今回は、シートの実行ボタンを押下したら、アクティブセルの行の値をフォームに表示してみましょう。フォームのコードを表示しましょう。右クリックします。フォーム上で右クリックでも良いです。また、「表示」→「コード」…ショートカットはF7です。

  • 第9回.標準モジュールとフォーム間のデータ受け渡しⅠ
    今回はフォームが起動された時起動したシートのアクティブセルの行数を知る方法について解説します。前回までに作成したものは標準モジュールにSubFormShow() frmSample.Show EndSub フォームモジュールにPrivateSubUserForm_Initialize() DimiAsLong WithWorksheets(_顧客マスタ_…

  • 第10回.標準モジュールとフォーム間のデータ受け渡しⅡ
    1.シートのセルを使う 2.標準モジュールのグローバル変数を使う 3.標準モジュールからフォームのコントロールを操作する 4.Subプロシージャーの引数を使う 5.Functionプロシージャーの戻り値を使う。2.3.を解説しました。では、いよいよ4.5.を解説しましょう。


  • 第11回.コンボボックス(ComboBox)の追加
    ユーザーフォームで良く使われるコントロールは、ラベル、テキストボックス これは当然ですが、その次に良く使われるものは、コンボボックス、リストボックス、チェックボックス、オプションボタンになるでしょう。今回から、この3つのコントロールの使い方の解説をします。

  • 第12回.リストボックス(ListBox)の追加
    単一列(1列)の場合は、コンボボックスと同様なので、今回は、複数列について説明します。複数列の扱いは、コンボボックスも同様になります。作成するリストは、都道府県を選択するリストにしてみます。ラベルとリストボックスを追加します。

  • 第13回.チェックボックス(CheckBox)の追加
    チェックボックスは、ONかOFFかの2択の場合に良く使われます。今回は、顧客の休止状態のチェックボックスを追加してみましょう。オブジェクト名:chk休止 とすることにします。設定するプロパティはCaptionに_休止_とだけ指定すればOKです。

  • 第14回.オプションボタン(OptionButton)の追加
    オプションボタンは、複数の項目から単一選択になります。従って、コンボボックスやリストボックスの単一選択と同じ機能と言えます。違いは、見た目の問題になります。選択項目が変化しない、つまり今後も増減しない項目で、かつ、選択数が少ない場合には、見た目にも分かりやすいコントロールだと思います。

  • 第15回.ここまでの整理
    一旦ここまでの復習を兼ねてプログラムの整理をします。ついでにシートの当該行のダブルクリックでフォームが開くようにします。Worksheets(_顧客マスタ_) シートモジュール PrivateSubWorksheet_BeforeDoubleClick(ByValTargetAsRange,

  • 第16回.アクティブコントロールに色を付ける
    フォーム内のどこにカーソルがあるか分かりづらい場合があります。そこで、アクティブなコントロールのバックカラーを変えたり、対応するラベルのフォントを変更したりして、アクティブなコントロールを解り易くします。以下はサンプルコードになります。

  • 第17回.Enterキーで次のコントロールに移動する
    Enterキーの押下で、(タブ順が)次のコントロールに移動してほしいものです。テキストボックスは、Enterキー押下で次のコントロールに進みます。(MultiLineの場合は、テキストないの改行となります。

  • 第18回.2段階コンボボックス
    2段階コンボボックスを作成します。1つのコンボボックスの選択内容により次のコンボボックスのリストを変更します。ワークシートのセルの入力規則で実施する場合は入力規則のリストを2段階の絞り込みで作成1 入力規則のリストを2段階の絞り込みで作成2一覧リストを使用して「入力規則」の「リスト」を作成し「リスト」の選択結果によりとなりの「リスト」の内容を自動で変化さ…

  • 第19回.テキストボックス数値編集
    数値専用のテキストボックスの作成です。まずは以下のように金額のテキストボックスを追加します。オブジェクト名はtxt金額とします。PrivateSubtxt金額_KeyDown(ByValKeyCodeAsMSForms.ReturnInteger,ByValShiftAsInteger) SelectCaseKeyCode CasevbKeyReturn,

  • 第20回.テキストボックスの各種イベント
    ユーザーフォームで最も良く使われる、テキストボックスのイベントの一覧と、キー入力と、コントロール間の移動時のイベント発生順について記載します。ユーザーの操作に応じて自動処理するためには、その操作により発生するイベントと、その発生順序を理解しておくことが必要です。

  • 第21回.ユーザーフォームの各種イベント
    ユーザーフォームに対する操作(アクション)で発生するイベントの一覧ですユーザーフォームそのものの制御をする場合はこのイベントを利用します。ユーザーフォームのイベント一覧 イベント 構文 説明 Activate UserForm_Activate() Activateイベントはオブジェクトがアクティブなウィンドウになったときに発生します。





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

CSVの読み込み方法(ジャグ配列)|VBAサンプル集(7月15日)
その他のExcel機能(グループ化、重複の削除、オートフィル等)|VBA入門(7月14日)
オートフィルタ退避回復クラスを複数シート対応させるVBAクラス|VBA技術解説(7月6日)
オートフィルタを退避回復するVBAクラス|VBA技術解説(7月6日)
IfステートメントとIIF関数とMax関数の速度比較|VBA技術解説(6月23日)
Withステートメントの実行速度と注意点|VBA技術解説(6月6日)
VBA+SeleniumBasicで検索順位チェッカー(改)|VBA技術解説(6月2日)
マクロでShift_JIS文字コードか判定する|VBA技術解説(6月1日)
Shift_JISのテキストファイルをUTF-8に一括変換|VBAサンプル集(5月31日)
「VBAによる解析シリーズその2 カッコ」をやってみた|エクセル(5月21日)


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

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



  • >
  • >
  • Excelユーザーフォーム入門

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


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




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