【VBA】ユーザー目線で開発する5

ユーザーフォームとAccessDBでツール作成

一日に2ℓくらい水を飲むjimです。どうも✋

今回は、、というか、今回もかな?

【VBA】ユーザー目線で開発する4の続きです。

『ユーザーが使いやすいように、ユーザーフォームで開発。そして、参照先は全てAccessにしてみよう。』ってことだったんだけど、長くなったね😆

この5回で最後にするつもりですが、実は山ほど書きたいことはある。。。

はい、というわけで⇒

ユーザーフォーム追加

同一ファイルにユーザーフォームを追加します。

新しくユーザーフォームを挿入して、下図のようにコマンドボタンを配置します。

オブジェクト名はそのままです。

Userform2にCommandButton1とCommandButton2が並んでいるだけです。

登録フォーム

CommandButton2から実装します。

以下の内容をUserform2に記述します。

単純に登録用のフォームを表示させるだけです。

メール作成機能

CommandButton1の機能を実装します。

最初に参照設定を行います。

Outlookのライブラリにチェックを入れます。

↓のライブラリは古いです。(MicrosoftOutlook○○ObjectLibraryにチェック)

次に、メールの本文に使うデータを問い合わせる関数を作成します。

Userform1の初期化とほぼ一緒です。

これで名字からメールアドレスまで取得できたので、この情報をもとにOutlookのメールを作成します。

これで実装完了です。

メール作成ボタンを押せば、以下のようなメールが作成されるはずです。

(ちなみ、全然テストしてません。エラー出るかも。。。)

 

まとめ

はい、いかがでしたか?

参照先をAccessにすることで、マクロファイルを編集することがなくなりますし読専にすることも可能です。それによって、複数のユーザーが同時に使用可能になります。開くときに邪魔なメッセージも出なくなるので、ユーザーのストレスも減るでしょう。

今回は登録とメール作成の2つ機能をユーザーフォーム実装しましたが、自分は複数の業務を1つのユーザーフォームにモリモリ盛ったりします。

例えば、今回のような登録フォームやカレンダーフォーム。それからラベルを並べてスプレッドシート風にしたり。。。

うん、色々。

ものによってはオブジェクトの数が多すぎて苛々します。

それでも、発想次第では凄く便利なものができるので、皆さんも挑戦してみては?

 

 

あっ、そういえば、今回のやつパワポで作ってたんだけど、パワポはアプリケーションを非表示にできないの忘れてた😓

そうそう、だからWordで作るようにしてたんだった。。。

テヘペロ

Wordなら、ThisDocumentモジュールに以下のコードを記述し、

Userform2に以下のコードを記述する。そうすると、ツール使用時はユーザーフォームだけが表示されるようになります。

Application.Quitは、Wordだったら開いている全てのWordを・Excelなら開いている全てのExcelを終了してしまうので注意が必要です。

それじゃまたね✋