プログラムは、前回のステップで作成済みです。まだの人は、ステップを戻って完成させてから、動作確認を行なってください。
【1】Excelのファイル「メール送受信.xls」を開きます。
*マクロを有効にする
【2】ワークシートを「送信」に切り換えます。
【3】フォーム「frm送信」が、自動的に表示されます。
【4】フォームが開いた時に、初期値として行番号に「2」が入り、「メール送信」ボタンが使用不可になっていることを確認します。
【5】行番号は「2」のまま、キーボードから「Tabキー」を押すか、マウスで件名に移動します。
するとラベルに氏名とメールアドレスが自動的に表示され、「メール送信」ボタンが使用可能になりました。
*ただし「メール送信」ボタンは、クリックしないでください!
(まだクリック時のプログラムの変更が済んでいないため)
【6】次は、行番号に「1」を入力してみましょう。
Excelのワークシート「送信」の1行目は項目名なので、ラベルに「行番号は、2以上の数値を入力してください。」というメッセージが表示され、「メール送信」ボタンが使用不可になります。
「メール送信」ボタンは、正しいデータの場合だけ、使用できる仕組みです。
【7】行番号に「7」を入力してみましょう。
今回の例では、ワークシートの7行目には、データが入力されていないので、「この行は、データが未入力の項目があります。」というメッセージが表示されます。
氏名かメールアドレスのどちらかが未入力でも、同じメッセージが表示されます。
【8】わざと行番号を空白にしてみましょう。
件名のテキストボックスに移ろうとすると、「行番号を入力してください。」というメッセージが表示されます。
【9】行番号に「あ」や「a」のような文字を入力した場合は、どうなるでしょうか?
文字を入力した場合は、数値に変換できないので、エラーが発生して、エラー処理が行なわれます。
その結果、メッセージボックスが表示され、エラーの原因がわかります。
【10】メッセージボックスの「OK」ボタンをクリックします。
【11】また行番号を変更できるようになります。
この時に重要なポイントは、エラー処理がちゃんと行なわれているため、システムが異常停止することなく、次の操作が行なえることです。
【12】行番号をいろいろ変えて、テストしてみてください。
【13】動作確認が済んだら、フォーム「frm送信」を閉じます。
これでだいぶシステムらしくなってきましたね。
【補足】
今回は、行番号のテキストボックスに、数値以外のデータが入力された場合、エラー処理が行なわれる仕組みになっています。
でも他にも解決方法があります。
例えば、「正規表現」を使って、行番号に数値が入力されているかチェックする方法もあります。この方法だと、エラーが発生しないし、細かい制御が行なえます。
また今のプログラムは、メールアドレスの項目が入力されているかどうかのチェックだけです。入力されたデータが、メールアドレスとして適切かまでは調べていません。
正規表現を使うと、データがメールアドレスなのかチェックできるので、とても便利です。
「正規表現」は、 BASP21 の機能としても用意されています。
BASP21を使えば、Perl5互換の文字列処理が行なえるようになります。
正規表現を使って、パターンマッチしたり、置換したり、分割するといった文字列処理が簡単にできます。
余裕のある人は、「正規表現」についても調べてみるとよいでしょう。