見出し画像

7.[PG3]Accessで、データ入力フォーム作成とメール送信してみよう その3

こちら第7回「プログラマー養成講座」のパート3になります!
目次はこちらからご参照下さい!

今回から、VBAを書いて「メール送信」機能を実装するところになりますね。

師匠

メールって、スマフォとThunderbirdでしか送信したことないですね。プログラムでメール送信ってどうやるんだろう・・・。

では、メール送信について、ちょっとまじめに仕組みを考えてみましょう。
メールは大きく分けて、以下の2つが必要になります。
・メール送信設定
・メール文の作成

「メール送信設定」は「Mailsend関数」の中で行います。
Thunderbirdを使っているならば、最初の設定の時に「受信メールサーバー」「送信メールサーバー」「ポート番号」などを色々設定したことがあると思います。「メール送信設定」はずばりそれと同じことをします。

「メール文の作成」は、そのまんまですね。テーブルに入れている情報を利用してメール送信先に、件名、本文と、メールを送信する機能です。

師匠

聞いているだけだと、複雑怪奇なことをするようには聞こえないですが、ちなみに師匠だと、このプログラムを作るのにどれくらいかかりそうですか?

そうですね、もうMailsendは作ってありますので、ここからだと1時間くらいですかね。
ですが、ひさきさんは初めてAccessVBAを作るし、まだボタンの設置すらしていない状況なので、2~4時間かかるかなって思ってます。

師匠

あ、今日終わり切らない感じですね!?

ひさきさん次第っ

師匠

では、Excelでは「読取」「実行」のボタンをシート上に作成して、それを押したらVBAにかいたプロシージャが実行されるようにしていましたね。
同じようにAccessもやりますが、Accessでは「データ連結していないフォーム」を作成して、そこに「ボタン」を作成します。
前は「作成」>「フォーム」と選択したら、テーブル1の内容通りのフォームが自動的にできましたが、
今回は「作成」>「フォームデザイン」を選択すると、何もデータ連結していないし、オブジェクトが存在しないマッサラのフォームが作成できます。まずここまでやってみましょうか。

師匠

ではっと・・・

ふむふむ、

できました!

そしましたら次はボタンを作ります。
「フォームデザイン」>「ボタン」(左から4個目の陰のある箱みたいなやつ)
を選択し、先程作成したフォーム上でマウスをクリックすると、ボタンの作成ウィザードが表示され、指示に従っていくとボタンが作成されます。
そうですね、まずはアクセスを終了するボタンでも作ってみますか。
「コマンドボタンウィザード」で
「アプリケーション」を選択し、
「アプリケーションの終了」を選択して「次へ」、
「文字列」を選択して「次へ」、
「完了」。
完了したら、まずは作成したフォームを保存しましょう。
左上の保存ボタン押すとか、Ctl+Sを押すとかで保存しようとすると、フォーム名を聞かれてくるので、そのまま「OK」を押して下さい。

師匠


言われたとおりに

アプリの終了ボタンを

作って、

フォームの保存もしました!
「フォーム1」ができました!

今見ているのは、「フォーム1」の「デザインビュー」です。
ボタンを設置したり、テキストボックスを設置したりするモードです。
これを「フォームビュー」にすると、実際の操作モードになります。
切替は、開いているテーブルやクエリ名がタブ並びしているところで、右クリックすると、「フォームビュー」が選択できます。

師匠

なるほど、ここですね。では「フォームビュー」にします!

ではボタンを押してみましょうか

師匠

はい!
あぁ、Accessが終了し、デスクトップ画面が・・・。

問題なく動いたようですね!

Accessには、プログラムが2種類ありまして、
VBAプログラムソースを書かずに、プログラムを実行できる「マクロ」と、
Excelでやったのと同じ方式でVBAプログラムを書く「Visual Basic」です。

今回の「アプリの終了」ボタンは、マクロで実装しました。
マクロはあらかじめAccess内に準備されたアクションを組み立てることでできます。アクションをうまく組み立てればループ処理なども作成できるのですが、わかりやすさなど視認性が悪いのと、マクロは「Access」内でのみしか使えないので得た知識を他で活用できないです。

例えば、
Accessでマクロを習得しても、Excelではマクロの組み立てができませんが、
ExcelでVBAを覚えた場合、AccessでもVBAプログラムが書けます。
また、プログラムソースの書き方を覚えていれば、他のプログラム言語を覚える際にも役に立ちます。

なので、今回は広く使える技術を習得することが目標なので、マクロの利便性や細かい説明は行いません。

ちょっと長くなりましたが、いよいよ「メール送信」ボタンを設置しましょう。先ほどと同じようにボタンを置いた後に「コマンドボタンウィザード」が表示されますが、今回はすぐに「キャンセル」を選択します。

師匠

はい!

キャンセルっと・・・

そうしましたら、ボタン上で右クリックして、一番下にある「プロパティ」を選択します。すると「プロパティシート」が表示されます。

師匠

されました!

「イベント」タブの「クリック時」というところの下矢印をクリックすると
「イベント プロシージャ」がありますので、それを選択してさらに下矢印の右側にある「・・・」を押すと、そのボタンに紐づいたプロシージャが自動的に作成されてVBEが表示されます。

師匠

表示されました!

そしたら、プロシージャ内に
MsgBox "ボタンテスト"
とか書いてフォームを保存して、
「フォームビュー」に切り替えて、
ボタンを押してみましょうか。

師匠

できました!!

ここまでは「AccessVBAの使い方」レベルの話で、
プログラム環境とは違う知識の勉強だったので、手取り足取りって感じでし
たが、これでVBAを書くフェイズまで進んできちゃいました。

ここからは書いて、調べて、実行して、プログラムを書いていきましょう。

まずはひさきさん自身で考えて色々やってみて下さい。

師匠


では、その3はここでいったん区切って、VBAのコーディングはその4にて!

この記事が気に入ったらサポートをしてみませんか?