ユーザーフォームとは
ユーザーフォームは自身でカスタマイズできるフォームです
文字を日本語にしただけの説明ですね、、、
実際に私が作成したユーザーフォームをご紹介します
リハビリ計画書の入力フォームと利用者データベースの検索フォームです
このような入力や検索を行うフォームを自作できます。
ユーザーフォームの作成
Visual Basic Editor を開き
挿入→ユーザーフォームの順でクリックします。
UserForm1が挿入されました。
使用例
ユーザーフォームを呼び出す
ユーザーフォームを呼び出すコードは
1 |
UserFormオブジェクト.show |
上記で作成したユーザーフォームの名前は”UserForm1″なので
UserForm1.show
これで、作成したユーザーフォームを呼び出せます。
ユーザーフォームとシートの両方を操作したい場合は
1 |
UserFormオブジェクト.show vbModeless |
ユーザーフォームをモードレスに表示し、ユーザーフォームとシートを両方操作できます。
シートをスクロールしたり、別のExcelファイルを見ながら操作する場合はモードレス表示にしましょう。
ユーザーフォームを呼び出す場面はいくつか考えられますが、私は主に次の2種類を使用します。
①コマンドボタンを押したとき
一番使用するのはコマンドボタンを押したときでしょうか?
まずは、標準モジュールに先述のユーザーフォームを呼び出すコードを記載します。
次に、コマンドボタンを挿入してマクロを登録します。
マクロが登録されたボタンが挿入され、ボタンを押すことでユーザーフォームを呼び出すことが出来ます。
②Excelファイルを開いたとき
次によく使用する方法が
Excelファイルを開くとユーザーフォームも表示されている状態でしょうか
ファイルが開かれた際に作動するマクロはworkbookのイベントモジュールにコードを記載します。
先ほど、すでにユーザーフォームを呼び出すコードを標準モジュールに記載しているため、Callステートメントでプロシージャを呼び出しています。
シートから情報を取得し、ユーザーフォームに表示
セル(A1・A2・A3)に入力された文字列を取得して
ユーザーフォームに表示させます。
コードはこちら
1 2 3 4 5 6 7 |
Private Sub UserForm_Initialize() TextBox1.Value = Range("A1") TextBox2.Value = Range("A2") TextBox3.Value = Range("A3") End Sub |
コードを記載する前にテキストボックスを準備します
ツールボックスのテキストボックスから挿入できます
ツールボックスが見当たらなければ、表示からツールボックスを呼び出せます
コードを記載する場所は
コードの表示または、ユーザーフォームをダブルクリックすることで、コードの置き場所が表示されます
ユーザーフォームに入力した情報をシートに挿入
準備として、ユーザーフォームにコマンドボタンを設置します
では、ユーザーフォームを起動して、セル(A1・A2・A3)を編集してみます
文字が置き換わりました
コードはこちら
1 2 3 4 5 6 7 |
Private Sub CommandButton1_Click() Range("A1") = TextBox1.Value Range("A2") = TextBox2.Value Range("A3") = TextBox3.Value End Sub |
記載する場所は先述の”UserForm_Initialize”と同じ場所です
まとめ
ユーザーフォームを活用すると、業務の効率化が図れたり、入力ミスを減らすこともできます。
何よりも、お金を払って使用させて頂くPCソフトのようなかっこいいフォームを無料で!作ることが出来ます!(技量と時間によりますが、、、)
ユーザーフォームの活用方法は無限大です!!
ぜひ参考にしてみてください。
コメント