エクセル関数やVBAのコードを自動で生成

GPTExcelの使い方はこちら

VBAでユーザーフォーム-1使い方|VBEからの表示方法や各種オブジェクトの説明

スポンサーリンク

お知らせ記事には広告が含まれておりますがExcelのスキルUPに繋がる様コンテンツ自体は手を抜かずに作成しております

ユーザーフォームの使い方を勉強する

Excelにはセルが配置されたワークシートだけではないのをご存知でしょうか。

Excelにはユーザーインターフェイスを用意する機能が搭載されています。

EnjoyExcel
EnjoyExcel

一般的ではないのですが知ってる人たちの中では「ユーザーフォーム」と呼ばれています。

以下フォームは私が作ったフォームです。

「都道府県毎に行った事ある?ない?を入力する」という本当にどうでも良い情報を入力するフォームです。

ただし色んな機能を搭載しています。自分で言うのもおかしいですがフォームとしては優秀です。

本シリーズでは準備出来ませんが最終的にはこれを作れるようにブログ記事を書くつもりです。

話はそれますがこの話題意外に盛り上がるんですよ。私は25都府県しか行った事ないようです。

ちなみに「道」は無いです。四国も行った事が無いです。

フォーム上にテキストボックスやコンボボックス等色々な要素を自分の考えた様に設置する事が出来ます。

コマンドボタンを使って実行したりキャンセル処理を行ったり・・・色々な事が出来るようになります。

使える様になると世界が広がります。是非勉強してもらいたいです。

そこでユーザーフォームの作り方を学べるシリーズを用意してみました。

関連記事

ユーザーフォームを使うには配列など他の機能も合わせて使う事になります。

関連記事の一覧を掲載しておきます。

シリーズの構成

本記事を含め全部で7回です。全部見ていただくと以下スキルが身に着きます。

「フォームとフォームから情報を転送する為のシートを用意する」事が出来るようになります。

今までとは違う考え方が必要です

またいつも通りの返しで申し訳ないのですが色々な事が出来て自由度が広がる半面難しさが増します。

ただ難しいだけではないです。

ユーザーフォームはコードの難しさの質が少し違います

ユーザーフォームは複数のモジュール間で情報の受け渡しをする事になります。

  • そもそもコードはどこに書くのか?標準モジュールなのか?
  • 今自分はどのフォームのコードを書いているのか?
  • 〇〇というフォームから△△というフォームに値を渡すにはどうするのか?
  • □□というフォルダにある××というデータにフォームから値を転送するには?

上記ような事を考えてコードを用意する事になります。

今までは起動させたExcel内で完結する処理を書いていました。

フィールドが変わるとしたらシートが変わるぐらいだったと思います。

フォームを扱うようになるとworkbookを中心にもう少し広い領域で仕事をとらえる事が必要になります。

これが難しさの質が少し違うという事です。

いろんな機能を使う事になります

必要なスキル

・配列
・ファイル、フォルダ間の連携
・スコープ
・サブルーチン
・参照渡し、値渡し

この辺をしっかり勉強して理解出来てないと何をやってるのか意味が分からなくなってしまいます。

1つ1つクリアしていけば問題無いです。追々説明していきますので一緒に勉強していきましょう。

今後の予定を先に提示しておきます。今回はフォームを構成する各種コントロールの説明を行います。

次回以降は以下のようなスケジュールで記事を挙げていく事を予定しています。

全てやり切ると一定のアウトプットを用意する事が出来るという建付けを考えています。

最初に見ていただいた「都道府県・・・」のフォームより簡単なものを用意する事を予定しています。

以下内容で記事を用意する予定です

・このシリーズを勉強する事で作ることが出来るアウトプットを紹介
・実際にフォームを作ってみる
・フォームに繋げるワークシートを用意する
・フォームとシートを繋げるためのコードを用意する
・動作確認

本記事での課題

シリーズでは1記事ずつ課題を用意していきます。今回の課題です。

EnjoyExcel
EnjoyExcel
課題

各種コントロールについて概要を理解しよう

各種コントロールを紹介

では早速説明に入ります。

先程提示したような課題に取り組む前に説明しておきたい内容があります。

フォームを含めた機能(コントロール)の説明をさせてください。

全部は説明しませんが今回は比較的使用頻度が高い機能を説明します。

ではまずはフォームで扱うコントロールの説明をしていきます。

フォーム

各種コントロールを配置する為のベースになります。

プロジェクトエクスプローラ内で以下操作をしてください。

右クリック→挿入→ユーザーフォーム

これでコードウインドウにフォームが現れます。

プロジェクトエクスプローラ内のツリーには以下の様に表示されます。

シート、ThisWorkbook、標準モジュールと並列で表示されます。

という事はフォームにもコードが書けるのか?と考えた方は鋭いです。

次回以降で説明しますがフォームもコードを持つことが出来ます

このフォームにいろんなコントロールを置いていきます。

フォームと一緒にツールボックスと書いてあるダイアログが付いてきます。

これは文字通りツールボックスです。

ツールボックス出ない方はVBEで以下の様に探してみてください。

ここに居るアイコンを使って各種コントロールを用意していきます。

左上から順番に・・・と言いたいところですが使用頻度を見て抜粋で紹介させていただきます。

拡大版を載せておきます

オブジェクトの選択

ツールボックスのコントロールタブ内左上の矢印マークです。

このアイコンを選択する事でコントロールを移動させることが出来ます。

ラベル

「A」というマークのアイコンです。フォームに文字を載せる時に使用します。

テキストボックス

四角に「abl」と書いてあるアイコンです。

文字を入力する為の範囲(ブロック)を作成するアイコンです。

コンボボックス

テキストボックスの1つ右のアイコンです。アイコン上部に青の長方形がいますね。

これはセルの画面では「データの入力規則」の中にあるリストという機能とほぼ同じです。

セルが表示されている画面のデータタブの中に居ます。

簡単に紹介しますとクリックすると選択肢を表示する事が出来る機能です。

旅行予約サイトで考えてみましょう。

行先がコンボボックスになっていてクリックすると北海道、東北、関東・・・と選択肢が出てきますよね。

同じような機能だと思ってください。

リストボックス

コンボボックスの1つ右のアイコンです。青い四角が2つ居ます。

情報をリスト上に表示する事が出来ます。

罫線は無いですがセル画面の様に縦横に規則的に情報を持つことが出来ます。

チェックボックス

四角にレ点のアイコンです。見たままの使い方をします。

クリックするとレ点が入るというコントロールです。

オプションボタン

マルに点のアイコンです。いわゆるラジオボタンです。

選択肢の中で1つだけ選択してもらいたい時に使うコントロールです。

まとめ

まずはイメージを掴んでもらえたらなと思っています。

今回は色々なコントロールについて紹介させていただきました。

本日勉強したこと
  1. Excelにはフォームという機能がある
  2. フォームはコードが持てる
  3. 複数のコントロールが存在する
一緒に頑張りましょう

Enjoy Excel

今回紹介しましたコントロールは以降の記事で用意するアウトプットには全部は使いません。

使わないけど紹介した理由は「こんな機能もあるんだ」という事を知っておいてほしかった為です。

まずは出来るだけ簡単なフォームを作ってコードの書き方に慣れてもらう事が必要だと思っています。

最低限の事が分かる様になったらあとは皆様各自でコントロールを使用してみてください。

今回は以上となります。次回記事で今シリーズのアウトプットについて説明していきます。

タイトルとURLをコピーしました