大体でIT
大体でIT
Excel VBAでユーザーフォームの呼び出しと閉じる方法についてご紹介します。表示する際はモードレスでユーザーフォームを表示したまま他の操作ができるようにすると便利です。
この記事ではユーザーフォームを呼び出す方法と閉じる方法についてご紹介します。
ユーザーフォームを使う場合には呼び出す方法と閉じる方法は必要になりますのでご参考になるかと思います。
- ユーザーフォームを呼び出す方法
- ユーザーフォームを閉じる方法
Excel VBAでユーザーフォームを呼び出す方法についてご紹介します。
一番簡単なのはVBE画面のユーザーフォームのところでF5をクリックするとユーザーフォームを呼び出しことができます。
ユーザーフォームを作成している途中でユーザーフォームの動作をとりあえず確認したい場合に使えるかと思います。
VBE画面のユーザーフォームのところでF5を押してみます。
ユーザーフォームでF5を押す
ユーザーフォームが開く
VBAコードでユーザーフォームを表示するShowについて説明します。
ユーザーフォームを開くVBAコードはこちらになります。
Sub TEST1()
'開く
UserForm1.Show
End Sub
ユーザーフォームを開くコードは『UserForm1.Show』でできます。
ユーザーフォームをShowで開く
これで標準モジュールからユーザーフォームを呼び出すことができます。
ユーザーフォームを表示したまま他の操作ができるようにするユーザーフォームの表示方法でモードレスというのを説明します。
先ほどの『UserForm1.Show』を開いたらユーザーフォーム以外の操作ができないということに気づいたと思います。
ユーザーフォームを開いた際にワークシートの操作ができないとなにかと不便です。
ユーザーフォームを開きながら他の操作をしたい場合に使えます。
モードレスでユーザーフォームを開くVBAコードはこちらです。
Sub TEST2()
'モードレスで開く
UserForm1.Show vbModeless
End Sub
ユーザーフォームを表示したまま他の操作ができるようにするコードは『UserForm1.Show VbModeless』です。
モードレスでユーザーフォームを開く
ユーザーフォームを開いて他の操作をする
これでユーザーフォームを開きながら他の操作をすることができます。
ユーザーフォームを開きながら他の操作をするモードレスはプロパティの設定でもできます。
ユーザーフォームのプロパティの『ShowModal』を『False』にします。
プロパティを設定する
ユーザーフォームを開く
ユーザーフォームを開いた状態でセルを選択してみます。
ユーザーフォームを開いた状態で他の操作をする
プロパティのShowModalをFalseにすればモードレスでユーザーフォームを表示することができます。
ユーザーフォームをボタンで呼び出す方法についてご紹介します。
VBE画面を毎回開いてF5やVBAコードを実行していると時間がかかりますしユーザーモビリティ的にあまりよくないのでボタンでユーザーフォームを開けると便利です。
やり方はユーザーフォームを開くVBAコードを図形などにマクロ登録すればできます。
図形をクリックしてユーザーフォームを表示してみます。
図形のクリックでユーザーフォームを表示
まずなんでもいいので図形をワークシートへ挿入します。
手順①(図形を挿入)
図形を右クリックして『マクロの登録』をクリックします。
手順②(マクロ登録画面を開く)
マクロ登録画面がでてきますのでユーザーフォームを表示するマクロを選択してOKをクリックします。
手順③(図形にマクロを登録する)
ユーザーフォームを開くマクロは『TEST1』に記載していますのでTEST1を選択しました。
これで図形のクリックでユーザーフォームを呼び出すことができます。
Excel VBAのユーザーフォームを閉じる方法についてご説明します。
一番簡単なのがユーザーフォームの右上の『×』で閉じる方法です。
ユーザーフォームを×をクリック
ユーザーフォームを×で閉じる
ユーザーフォームのボタンで閉じる方法について説明します。
ユーザーフォームを閉じるには『Unload』を使えばできます。
'ボタンクリックで実行
Private Sub CommandButton1_Click()
'閉じる
Unload Me
End Sub
ボタンをクリックした際に実行するコード『Private Sub CommandButton1_Click()』を使用しています。
このコード内にユーザーフォームを閉じるコード『Unload Me』を記載しています。
この『Me』というのは『このコードが記載されているユーザーフォーム』という意味になります。
ユーザーフォームを開いてボタンをクリックしてみます。
ユーザーフォームのボタンをクリックする
ユーザーフォームが閉じられる
ワークシートのボタンでユーザーフォームを閉じる方法についてご紹介します。
標準モジュールに記載したユーザーフォームを閉じるVBAコードをワークシート内のボタンに登録するとできます。
手順①(VBAコード記載)
『標準モジュール』に次のVBAコードを記載します。
Sub TEST3()
'閉じる
Unload UserForm1
End Sub
手順②(マクロ登録画面を開く)
手順③(マクロの登録)
ワークシートを閉じるVBAコードは『TEST3』に記載しているので『TEST3』を登録します。
これでユーザーフォームをワークシートのボタンから閉じることができます。
実行①(VBAコードを記載)
まずユーザーフォームをモードレスで開くVBAコードを記載します。
モードレスで開くVBAコードは先ほど紹介したように次のようになります。
Sub TEST2()
'モードレスで開く
UserForm1.Show vbModeless
End Sub
実行②(ユーザーフォームをモードレスで開く)
VBAコードを実行してユーザーフォームをモードレスで開きます。
実行③(ワークシートの図形をクリック)
マクロ登録したワークシートの図形をクリックします。
標準モジュールのVBAコードを使ってユーザーフォームを閉じる際はユーザーフォームがモードレスである必要がありますので注意が必要です。
よく使うユーザーフォームの『呼び出し』と『閉じる』の組み合わせはこちらかと思います。
- 呼び出し:ワークシートのボタンから呼び出し(モードレス)
- 閉じる:ユーザフォームのボタンで閉じる
簡単に呼び出して他の操作もするためワークシートのボタンからモードレスで呼び出します。
ユーザーフォームのボタンで閉じるとその時になにかコードを実行することができるのでよく使うかと思います。
ワークシートのボタンからユーザーフォームをモードレスで呼び出します。
ユーザーフォームを呼び出す
ユーザーフォームを閉じる
ワークシートのボタンでユーザーフォームをモードレスで呼び出す手順を説明します。
手順①
ユーザーフォームをモードレスで呼び出すVBAコードを記載します。
Sub TEST4()
'モードレスで開く
UserForm3.Show vbModeless
End Sub
手順②
記載したVBAコードをワークシートの図形へ登録するため右クリックしてマクロの登録を開きます。
手順③
先ほど記載したVBAコードを選択したいので『TEST4』を登録します。
'ボタンクリックで実行
Private Sub CommandButton1_Click()
'閉じる
Unload Me
End Sub
これでユーザーフォームのボタンをクリックで閉じることができます。
この記事ではユーザーフォームを呼び出す方法と閉じる方法についてご紹介しました。
ユーザーフォームを使う場合には呼び出す方法と閉じる方法は必ず必要になるかと思いますのでご参考になるかと思います。
最後までご覧くださいましてありがとうございました。