機械系エンジニアの備忘録

20代独身社会人。仕事では機械・機構の研究開発を行っているエンジニアが、自分の専門分野ではないpythonを扱って楽しむブログです。

MENU

【Excel-VBA#5】ユーザーフォームの作り方

ユーザーフォームを使ってみよう

 

1. はじめに

前回、前々回でVBAの基本的なコードの書き方を紹介しました。

www.stjun.com

www.stjun.com

 今回はユーザーフォームの作り方を紹介します。ユーザーフォームを使うことで入力フォームやリストなどを表示でき、ユーザーがより使いやすいプログラムにすることができます。PythonだとTkinterに近い機能です。言葉だけでは伝えづらいので実際に試してみましょう。

 

2. ユーザーフォームを使ってみる

2.0 ユーザーフォームの作り方

「開発」タブの「Visual Basic」をクリックします。

f:id:stjun:20201019003130p:plain

そして「挿入」から「ユーザーフォーム」をクリックすると「UserForm1」が現れます。これがユーザーフォームです。ここにリストボックスやボタンといった様々な機能を追加できます。

f:id:stjun:20201025222804p:plain

f:id:stjun:20201025222912p:plain
 

2.1 部品の説明:ラベル、テキストボックス、リストボックス、コマンドボタン

ツールボックスからユーザーフォームに部品を追加することができます。中でも、よく使うのは以下の4つです。

f:id:stjun:20201025223414p:plain

ラベル:テキストを貼り付けることができる機能。ユーザーは編集できない。上段の左から2番目。

テキストボックス:ユーザーが自由にテキストを入力できる機能。名前や住所などを入力してもらう時などに使う。上段の左から3番目。

リストボックス:セルの中身をリスト形式で表示できる機能。具体的な使い方は次の記事で紹介します。上段の左から5番目。

コマンドボタン:ボタンの機能。ボタンを押すとプログラムが動くっといった使い方ができる。下段の左から2番目。

 

2.2 部品の貼り付け方と削除方法

部品を貼り付けるには、まず「ツールボックス」の中の部品をクリックした後、ユーザーフォーム内の置きたい場所をクリックすると配置できます。

例えばラベルを貼りたい場合、「ツールボックス」のAのラベルをクリックします。そのあとユーザーフォームの左上をクリックすると配置できます。

f:id:stjun:20201025224030p:plain

 部品を削除したいときは、部品をクリックしてDeleteキーを押します。またCtrl+CとCtrl+Vでコピー&ペーストすることも可能です。

 

2.3 プロパティ 

ユーザーフォームや部品の詳細設定はプロパティ欄から行えます。赤色で囲まれた表です。

f:id:stjun:20201025224752p:plain

以下に簡単に説明します。

 オブジェクト:ユーザーフォームや部品の名前。プログラミング時にここで付けた名前を使用するので分かりやすい名前にしとく

Autosize:Trueにすると自動で大きさを調整してくれる機能。Falseにしても部品を選択した時に出てくる枠の右下白い四角をダブルクリックすれば自動調節が可能。

Backcolor:背景色。右側のプルダウンより視覚的に設定可能。

f:id:stjun:20201025225110p:plain

Backstyle:背景を透明にするかどうか。

Bordercolor:枠線の色

Borderstyle:枠線の種類

Caption:表示されるテキスト内容。

Enabled :ユーザが触れるかどうか。Falseにすると灰色になり選択不能になる。

Font :文字の設定。右側のプルダウンから詳細設定が可能。

f:id:stjun:20201025225546p:plain

Fontcolor:文字の色

Height:部品の縦方向の大きさ

Left:部品の横方向の位置。0にするとユーザーフォームの1番左に配置される。

Tabstop:Tabキーで止まるかどうか。FalseにするとTabキーで止まらなくなる。

Tag:補助的な識別子。VBAで「Tagがついてる部品だけ色変える」みたいな事ができる。

Top:部品の縦方向の位置。0にするとユーザーフォームの1番上に配置される。

Width:部品の横方向の大きさ。

 

2.4 ユーザーフォームのデザインを整える

例えば以下のようにラベルがバラバラに配置してるとします。

f:id:stjun:20201025230306p:plain

 これを綺麗に整列させてみましょう。

Ctrlを押しながら各部品をクリックして選択します。この時、Label1の枠に白い四角がくるように選択してください

f:id:stjun:20201025230427p:plain

次に「書式」から「整列」の中の「左を選択します。」 

f:id:stjun:20201025230727p:plain

するとこのように全ての部品が左揃えになりました。

f:id:stjun:20201025230817p:plain

しかしまだ各部品の間隔がバラバラで汚いですね。そこで次は「書式」から「上下の間隔」の中の「間隔を均等にする」をクリックします。

f:id:stjun:20201025230931p:plain

するとこのように等間隔な綺麗な配置になりました。

f:id:stjun:20201025231036p:plain

このようにして部品の配置・デザインを綺麗にまとめていきましょう。綺麗にまとまっているとユーザーが使いやすくなります。

 

3. おすすめ書籍

このシリーズはプログラミング初心者にも非常に分かりやすくてお勧めです。

私はプログラミングを初めて勉強する際、3番目の本を大学時代に買ってすごく助かりました。今でも手元に置いてるくらいです。 

 

4. 最後に

今回はユーザーフォームの作り方を紹介しました。しかしユーザーフォームだけでは何も動作は起きません。ユーザーフォームはVBAと合わせて初めて真価を発揮します。次回はユーザーフォームとVBAの組み合わせを紹介します。