![見出し画像](https://assets.st-note.com/production/uploads/images/94272253/rectangle_large_type_2_c561e0a54cb68a453ee7b5255b86ec40.png?width=800)
7.[PG3]Accessで、データ入力フォーム作成とメール送信してみよう その3
こちら第7回「プログラマー養成講座」のパート3になります!
目次はこちらからご参照下さい!
今回から、VBAを書いて「メール送信」機能を実装するところになりますね。
メールって、スマフォとThunderbirdでしか送信したことないですね。プログラムでメール送信ってどうやるんだろう・・・。
では、メール送信について、ちょっとまじめに仕組みを考えてみましょう。
メールは大きく分けて、以下の2つが必要になります。
・メール送信設定
・メール文の作成
「メール送信設定」は「Mailsend関数」の中で行います。
Thunderbirdを使っているならば、最初の設定の時に「受信メールサーバー」「送信メールサーバー」「ポート番号」などを色々設定したことがあると思います。「メール送信設定」はずばりそれと同じことをします。
「メール文の作成」は、そのまんまですね。テーブルに入れている情報を利用してメール送信先に、件名、本文と、メールを送信する機能です。
聞いているだけだと、複雑怪奇なことをするようには聞こえないですが、ちなみに師匠だと、このプログラムを作るのにどれくらいかかりそうですか?
そうですね、もうMailsendは作ってありますので、ここからだと1時間くらいですかね。
ですが、ひさきさんは初めてAccessVBAを作るし、まだボタンの設置すらしていない状況なので、2~4時間かかるかなって思ってます。
あ、今日終わり切らない感じですね!?
ひさきさん次第っ
では、Excelでは「読取」「実行」のボタンをシート上に作成して、それを押したらVBAにかいたプロシージャが実行されるようにしていましたね。
同じようにAccessもやりますが、Accessでは「データ連結していないフォーム」を作成して、そこに「ボタン」を作成します。
前は「作成」>「フォーム」と選択したら、テーブル1の内容通りのフォームが自動的にできましたが、
今回は「作成」>「フォームデザイン」を選択すると、何もデータ連結していないし、オブジェクトが存在しないマッサラのフォームが作成できます。まずここまでやってみましょうか。
ではっと・・・
![](https://assets.st-note.com/img/1672195252520-HEzTypwlWT.png)
ふむふむ、
![](https://assets.st-note.com/img/1672195215186-Kv4YkV7DYA.png)
できました!
そしましたら次はボタンを作ります。
「フォームデザイン」>「ボタン」(左から4個目の陰のある箱みたいなやつ)
を選択し、先程作成したフォーム上でマウスをクリックすると、ボタンの作成ウィザードが表示され、指示に従っていくとボタンが作成されます。
そうですね、まずはアクセスを終了するボタンでも作ってみますか。
「コマンドボタンウィザード」で
「アプリケーション」を選択し、
「アプリケーションの終了」を選択して「次へ」、
「文字列」を選択して「次へ」、
「完了」。
完了したら、まずは作成したフォームを保存しましょう。
左上の保存ボタン押すとか、Ctl+Sを押すとかで保存しようとすると、フォーム名を聞かれてくるので、そのまま「OK」を押して下さい。
言われたとおりに
![](https://assets.st-note.com/img/1672195919405-CHf1GJ96DO.png)
アプリの終了ボタンを
![](https://assets.st-note.com/img/1672195759809-NU6DSgdw9o.png)
作って、
![](https://assets.st-note.com/img/1672195772677-PFX2l8JSbU.png)
フォームの保存もしました!
「フォーム1」ができました!
今見ているのは、「フォーム1」の「デザインビュー」です。
ボタンを設置したり、テキストボックスを設置したりするモードです。
これを「フォームビュー」にすると、実際の操作モードになります。
切替は、開いているテーブルやクエリ名がタブ並びしているところで、右クリックすると、「フォームビュー」が選択できます。
![](https://assets.st-note.com/img/1672196129216-6j3CFZWhTi.png)
なるほど、ここですね。では「フォームビュー」にします!
ではボタンを押してみましょうか
はい!
あぁ、Accessが終了し、デスクトップ画面が・・・。
問題なく動いたようですね!
Accessには、プログラムが2種類ありまして、
VBAプログラムソースを書かずに、プログラムを実行できる「マクロ」と、
Excelでやったのと同じ方式でVBAプログラムを書く「Visual Basic」です。
今回の「アプリの終了」ボタンは、マクロで実装しました。
マクロはあらかじめAccess内に準備されたアクションを組み立てることでできます。アクションをうまく組み立てればループ処理なども作成できるのですが、わかりやすさなど視認性が悪いのと、マクロは「Access」内でのみしか使えないので得た知識を他で活用できないです。
例えば、
Accessでマクロを習得しても、Excelではマクロの組み立てができませんが、
ExcelでVBAを覚えた場合、AccessでもVBAプログラムが書けます。
また、プログラムソースの書き方を覚えていれば、他のプログラム言語を覚える際にも役に立ちます。
なので、今回は広く使える技術を習得することが目標なので、マクロの利便性や細かい説明は行いません。
ちょっと長くなりましたが、いよいよ「メール送信」ボタンを設置しましょう。先ほどと同じようにボタンを置いた後に「コマンドボタンウィザード」が表示されますが、今回はすぐに「キャンセル」を選択します。
はい!
![](https://assets.st-note.com/img/1672197275138-YzBKB580IB.png)
キャンセルっと・・・
![](https://assets.st-note.com/img/1672197378696-WLFtsN5NcC.png)
そうしましたら、ボタン上で右クリックして、一番下にある「プロパティ」を選択します。すると「プロパティシート」が表示されます。
されました!
![](https://assets.st-note.com/img/1672197446685-dPxLHS6GeD.png)
「イベント」タブの「クリック時」というところの下矢印をクリックすると
「イベント プロシージャ」がありますので、それを選択してさらに下矢印の右側にある「・・・」を押すと、そのボタンに紐づいたプロシージャが自動的に作成されてVBEが表示されます。
![](https://assets.st-note.com/img/1672197532587-uyg0s3jEWH.png)
表示されました!
![](https://assets.st-note.com/img/1672197621329-HAyYFiin7j.png)
そしたら、プロシージャ内に
MsgBox "ボタンテスト"
とか書いてフォームを保存して、
「フォームビュー」に切り替えて、
ボタンを押してみましょうか。
できました!!
ここまでは「AccessVBAの使い方」レベルの話で、
プログラム環境とは違う知識の勉強だったので、手取り足取りって感じでし
たが、これでVBAを書くフェイズまで進んできちゃいました。
ここからは書いて、調べて、実行して、プログラムを書いていきましょう。
まずはひさきさん自身で考えて色々やってみて下さい。
では、その3はここでいったん区切って、VBAのコーディングはその4にて!
この記事が気に入ったらサポートをしてみませんか?