スポンサードリンク

Excelでメールを送信する時のプログラムを変更する。

ワークシートの設定と、ユーザーフォームの準備が出来たら、いよいよメール送信のVBAプログラムを変更します。

主にコマンドボタン「cmd送信」クリック時のプログラムを変更するのですが、変数を移動したり、他のイベントプロシージャも少しだけ変更が必要です。

【1】Excelのファイル「メール送受信.xls」を開きます。

*マクロを有効にする


【2】VBEを起動します。

*「Altキー」+「F11キー」


【3】フォーム「frm送信」のコードを表示します。


【4】コマンドボタン「cmd送信」クリック時に宣言していた変数の一部を、宣言セクションに移動します。(切り取り)

mail-136.gif

*変数を二重に宣言しないために、必ず切り取ってください。


【5】切り取った変数を、宣言セクションに貼り付けます。

mail-137.gif


【6】宣言セクションに変数の宣言を追加します。

mail-139.gif

変数 mSender は、送信者の設定を受け取るためのものです。

最終的に宣言セクションは、以下のようになります。

Dim svname As String
Dim id As String
Dim pass As String
Dim mSender As String

Dim pos As Long
Dim tName As String
Dim eMail As String



【7】切り取った側は、以下のようになっています。

mail-138.gif


【8】そこに変数の宣言を追加します。

mail-146.gif


Dim bobj As Object
Dim mailto As String
Dim mailfrom As String
Dim subj As String
Dim body As String
Dim msg As Variant '送信チェック用


これは単純に、変数の宣言を忘れていただけです。

変数を宣言しないで使用すると、不具合の原因になるので、ちゃんと宣言します。


【9】フォーム「frm送信」初期化時のイベントプロシージャに、以下のコードを追加します。

mail-140.gif


Private Sub UserForm_Initialize()
  'メール送信ボタン使用不可
  Me.cmd送信.Enabled = False
  '初期値
  Me.txtPos = 2
  
  '送信者
  mSender = Trim(Sheets("設定").Range("B1").Value)
  
  'SMTPサーバー
  svname = Trim(Sheets("設定").Range("B2").Value)
  
  '送信ID
  id = Trim(Sheets("設定").Range("B3").Value)
  
  '送信パスワード
  pass = Trim(Sheets("設定").Range("B4").Value)
End Sub



【10】「cmd送信」クリック時のプログラムを、一部変更します。

mail-147.gif

・変更点のみ

'宛先
mailto = eMail

'送信者
mailfrom = mSender & vbTab & id & ":" & pass

'件名
subj = Me.txtSubject

'本文
body = Me.txtBody


VBAプログラム全体は、もう少し変更した後で掲載しますので、安心してください。

動作確認も、もう少し待ってください。

スポンサードリンク






メール送信・受信プログラミング初心者入門 TOPへ