大体でIT

-ちょっと使えるネタを紹介-

大体でIT

Excel VBAでユーザーフォームの呼び出しと閉じる方法についてご紹介します。表示する際はモードレスでユーザーフォームを表示したまま他の操作ができるようにすると便利です。

はじめに

この記事ではユーザーフォームを呼び出す方法と閉じる方法についてご紹介します。

ユーザーフォームを使う場合には呼び出す方法と閉じる方法は必要になりますのでご参考になるかと思います。

この記事で紹介すること

  • ユーザーフォームを呼び出す方法
  • ユーザーフォームを閉じる方法

目次から見たい項目へ移動すると便利ですよ。

目次

Excel VBAのユーザーフォームの呼び出し

Excel VBAでユーザーフォームを呼び出す方法についてご紹介します。

F5で呼び出す

一番簡単なのはVBE画面のユーザーフォームのところでF5をクリックするとユーザーフォームを呼び出しことができます。

ユーザーフォームを作成している途中でユーザーフォームの動作をとりあえず確認したい場合に使えるかと思います。

VBE画面のユーザーフォームのところでF5を押してみます。

ユーザーフォームでF5を押す

ユーザーフォームをF5で開く

ユーザーフォームが開きます。

ユーザーフォームが開く

ユーザーフォームが開かれる

ユーザーフォームが開かれました。

表示する(Show)

VBAコードでユーザーフォームを表示するShowについて説明します。

ユーザーフォームを開くVBAコードはこちらになります。

『標準モジュール』に記載します。

Sub TEST1()
    '開く
    UserForm1.Show
End Sub

ユーザーフォームを開くコードは『UserForm1.Show』でできます。

開いてみます。

ユーザーフォームをShowで開く

ユーザーフォームをShowで開く

ユーザーフォームを開けました。

これで標準モジュールからユーザーフォームを呼び出すことができます。

表示したまま他の操作をする(モードレス)

ユーザーフォームを表示したまま他の操作ができるようにするユーザーフォームの表示方法でモードレスというのを説明します。

先ほどの『UserForm1.Show』を開いたらユーザーフォーム以外の操作ができないということに気づいたと思います。

ユーザーフォームを開いた際にワークシートの操作ができないとなにかと不便です。

ユーザーフォームを開きながら他の操作をしたい場合に使えます。

モードレスでユーザーフォームを開くVBAコードはこちらです。

『標準モジュール』に記載します。

Sub TEST2()
    'モードレスで開く
    UserForm1.Show vbModeless
End Sub

ユーザーフォームを表示したまま他の操作ができるようにするコードは『UserForm1.Show VbModeless』です。

これでユーザーフォームを開いてみます。

モードレスでユーザーフォームを開く

モードレスでユーザーフォームを開く

セルを選択してみます。

ユーザーフォームを開いて他の操作をする

ユーザーフォームを開きながら他の操作をする

セルを選択することができました。

これでユーザーフォームを開きながら他の操作をすることができます。

プロパティでモードレス

ユーザーフォームを開きながら他の操作をするモードレスはプロパティの設定でもできます。

ユーザーフォームのプロパティの『ShowModal』を『False』にします。

プロパティを設定する

ユーザーフォームのプロパティでShowModalをFalseに設定する

ユーザーフォームをF5で開いてみます。

ユーザーフォームを開く

ユーザーフォームを開く

ユーザーフォームを開いた状態でセルを選択してみます。

ユーザーフォームを開いた状態で他の操作をする

ユーザーフォームを開いた状態でセルを選択してみる

セルが選択できました。

プロパティのShowModalをFalseにすればモードレスでユーザーフォームを表示することができます。

ボタンで呼び出す

ユーザーフォームをボタンで呼び出す方法についてご紹介します。

VBE画面を毎回開いてF5やVBAコードを実行していると時間がかかりますしユーザーモビリティ的にあまりよくないのでボタンでユーザーフォームを開けると便利です。

やり方はユーザーフォームを開くVBAコードを図形などにマクロ登録すればできます。

図形をクリックしてユーザーフォームを表示してみます。

図形のクリックでユーザーフォームを表示

マクロ登録した図形のクリックでユーザーフォームを表示

ユーザーフォームが表示されました。

では手順について説明していきます。

まずなんでもいいので図形をワークシートへ挿入します。

手順①(図形を挿入)

図形をワークシートへ挿入

図形を右クリックして『マクロの登録』をクリックします。

手順②(マクロ登録画面を開く)

図形を右クリックしてマクロの登録

マクロ登録画面がでてきますのでユーザーフォームを表示するマクロを選択してOKをクリックします。

手順③(図形にマクロを登録する)

図形にマクロを登録

ユーザーフォームを開くマクロは『TEST1』に記載していますのでTEST1を選択しました。

これで図形のクリックでユーザーフォームを呼び出すことができます。

Excel VBAのユーザーフォームを閉じる

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

これでユーザーフォームのボタンをクリックで閉じることができます。

おわりに

この記事ではユーザーフォームを呼び出す方法と閉じる方法についてご紹介しました。

ユーザーフォームを使う場合には呼び出す方法と閉じる方法は必ず必要になるかと思いますのでご参考になるかと思います。

最後までご覧くださいましてありがとうございました。

関連する記事から探す

カテゴリから探す

カテゴリから見たい項目を探すと便利ですよ。

アーカイブから探す