\ ポイント最大11倍! /

【Excel】VBAのユーザーフォームを作成、表示する

「ユーザーフォーム」とは

  • マクロをボタンに割り当て、ボタンを押すと決められたマクロを実行する
  • テキストやコードの入力補助

など、マクロを動作させるのに便利なツールです。

ユーザーフォーム
あわせて読みたい
【Excel】棒グラフの色を変更するVBA(ユーザーフォームを使用) ユーザーフォームを使って、棒グラフの系列色を1クリックで変えるVBAです。 動画が見れない方は画像でご覧ください。 【使い方】 棒グラフの系列を選択してユーザーフ...

では、ユーザーフォームの表示方法をご説明します。

スポンサーリンク
目次

Visual Basicウインドウでユーザーフォームを作成する

ツールバーから「VBA」ウインドウを表示させます。

ユーザーフォームの挿入

VBAウインドウを開いたところです。
左の「プロジェクトウインドウ」で、「ThisWorkbook」を右クリックし、

vbaウインドウでThisWorkbookを右クリック

挿入→「ユーザーフォーム」を選ぶとユーザーフォームが表示されます。

ユーザーフォームを選ぶとユーザーフォームが表示される

これでユーザーフォームの土台ができました。

ここにボタンなどを追加して、シートを操作できるようにしていきます。

ユーザーフォームにボタン等を追加する

「VBA」ウインドウの上部ツールバーで、表示→「ツールボックス」を選択します。

vbaウインドウの表示からツールボックスを選択する

ボタンを追加する

「ツールボックス」が表示されました。
「ツールボックス」の「コマンドボタン」を押すと、ユーザーフォームにコマンドボタンが追加されます。

ツールボックスからコマンドボタンを挿入する

コマンドボタンをクリックするとマクロを実行するようにする

先ほど挿入したコマンドボタンをダブルクリックすると、新しいVBA挿入ウインドウが開きます。

ユーザーフォーム上のコマンドボタンをダブルクリック

このウインドウ内に、実行したいマクロを挿入します。

コマンドボタンクリック時に実行したいマクロを挿入する

これで、ボタンをクリックするとマクロが動作するようになります。

ユーザーフォームをカスタマイズする

ボタンや、ユーザーフォームの名称を変更します。

ユーザーフォームの初期設定では「UserForm○」と左上に表示されています。これを変更するにはユーザーフォームをクリックし、左のプロパティ「Caption」欄で変更します。

ユーザーフォームのタイトルを変更する

コマンドボタンも同様に、ボタンを選択して「Caption」欄を選択して名前を変えます。

コマンドボタン名を変更する

これで、ユーザーフォームのボタンでマクロを動かす準備ができました。

ユーザーフォームをExcelシートから表示させるには

ここまでユーザーフォームを作ってきましたが、エクセルのシート上では全く表示されていません。

VBAウインドウを開かないと、ユーザーフォームがあることすらわからない状態です。
そこで、ユーザーフォームをエクセルのシート上でいつでも表示できる状態にします。

ユーザーフォームの表示させる方法は主に3通りあります。

  • 「VBA」ウインドウで「再生」する
  • Excelシートを開いたとき、ユーザーフォームも同時に表示する
  • シート上に表示ボタンを作る

順に説明します。

①「VBA」ウインドウで「再生」する方法

VBAウインドウを開き、再生ボタンを押します。

vbaウインドウの再生ボタンでシート上にユーザーフォームが再生される

これで、シート上に作ったユーザーフォームが表示されます。

ですが、いちいちウインドウを開いて再生ボタンを押すのは面倒ですよね。

もう一つの方法がこちらです。

②Excelシートを開いたとき、ユーザーフォームも同時に表示する

エクセルを開いた瞬間にユーザーフォームも同時に開きたい&ユーザーフォームをシート上に常に表示させておくなら、この方法が便利です。

①ユーザーフォームを表示させるためのマクロを打ち込む

VBAウインドウでThisWorkbookを右クリックし、「挿入」→「標準モジュール」でマクロを挿入します。

標準モジュールを開く

②開いたウインドウに、以下のコードをコピペします。

Sub Auto_Open()
 UserForm1.Show vbModeless
End Sub

Sub Auto_Open()
は、シートを開いたときの動作を記述するマクロです。

このマクロを保存しておくと、シートを開いたときにユーザーフォームが表示されるようになっています。

黄色マーカー部の「UserForm.1」は 先ほど作ったユーザーフォームの「オブジェクト名」を入力してください
※「Caption名」ではないので間違えないように!

vbModeless ←これを記載しておくと、ユーザーフォームを表示しながらシートを操作出来るようになります。
逆に記載しないと、ユーザーフォームが表示されている間はシートを操作できません。

次に、3つ目のやりかたをご紹介します。

③シート上に表示ボタンを作る

1つのシート上でユーザーフォームを何度も開いたり閉じたりする必要があるときに便利です。

閉じたり開いたりする必要がなくても、間違って「×」ボタンを押してしまった時の対処時などに、シート上に表示させるボタンを作っておくと楽です。

①ユーザーフォームを表示させるためのマクロを打ち込む

まずVBAウインドウでThisWorkbookを右クリックし、「挿入」→「標準モジュール」でマクロを挿入します。

標準モジュールを挿入する

②開いたウインドウに、以下のコードを挿入する。

Sub フォームを開く()
Userform1.show vbModeless
End Sub
  • Userform1→先ほど作ったユーザーフォームの「オブジェクト名」を入力する
    ※「Caption名」ではないので間違えないように!
  • vbModeless→ユーザーフォームを開きながら他の作業をする際に必要なので、入れておきます
ユーザーフォームを開くvba

③シート上にテキストボックスを作る

Excelのシートに、ユーザーフォームを表示するためのボタンを作ります。
挿入→図から、適当な図形やテキストボックスを挿入します。

シート上にテキストボックスを挿入する

④ボタンにマクロを登録する

挿入した図形の上で右クリックし、「マクロの登録」を選択します。

テキストボックスにマクロを登録する

先ほど作った「フォームを開く」を選んで「OK」を押します。

テキストボックスにフォームを開くマクロを登録する

⑤完成

これで完成です。「フォーム」ボタンを押すとユーザーフォームが開き、ユーザーフォームを動作させることができます。

ユーザーフォームを開くための図形を変更したいときは、右クリックすると大きさやテキストを変更できます。

テキストボックスをクリックするとユーザーフォームが開く

ユーザーフォームを使ったVBAの例は関連記事で紹介しています。

あわせて読みたい
【Excel】棒グラフの色を変更するVBA(ユーザーフォームを使用) ユーザーフォームを使って、棒グラフの系列色を1クリックで変えるVBAです。 動画が見れない方は画像でご覧ください。 【使い方】 棒グラフの系列を選択してユーザーフ...
あわせて読みたい
【Excel】折れ線グラフの色を選択したセルの背景色で一括指定するVBA 【Excelで折れ線グラフの色をセル背景の色に設定するvba】 Excelで折れ線グラフを作るとデフォルトの色が表示されます。 この色を変更したい時、手動で系列を選択→書式...
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次