みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

エクセルVABの変更の仕方

VBA初心者です。
エクセルのデータをメール送信したく、ネットで検索して希望に近いVBAを見付けたのですが改造の仕方が分からず、どのように記述したらいいのか教えてください。

シート1『宛先マスタ』のA列に担当者の名前が入ってます。
B列にメールアドレス
C列に『1』を入れたところだけメール送信

シート2『送信文章』のA7セルにメール件名
A10から本文
となってます。

現状のままだとA列が入らず、他にも入れたいことがあるので
シート1『宛先マスタ』の
D列に商品
E列に購入日付
を入れて、A・D・Eに明記されている内容をメール本文に載せたいのですが、どのように記述したらよいのでしょうか?

以下、現状のプログラムの一部です。

*********

'作成開始の確認
If MsgBox("メールを作成します、よろしいですか?", vbYesNo, "確認") = vbNo Then
Exit Sub 'vbNo いいえ だったら、関数をすぐに抜ける。
End If

'件名に 送信文章シートのA7の件名をセットする
Dim strTITLE As String 'メールの件名、タイトル。
strTITLE = Trim(Sheets("送信文章").Range("A7")) '隣の送信文章のA7セルを代入

'本文は、送信文章シートのA10から ”↑ここまで” を つなげ、セットする。
Dim strDOC As String '送信する文章
Dim strWORK As String '一時変数
Dim yLINE As Integer 'Y行目のカウント
'本文を作る
strDOC = "" '初期化する
For yLINE = 10 To 999 '10行目から最大999行まで
strWORK = Sheets("送信文章").Cells(yLINE, "A") 'A列のY行目の文字を取り出す
If strWORK = "↑ここまで" Then Exit For '↑ここまで だったら ループを抜ける
strDOC = strDOC & strWORK & vbCrLf '1行、文字を追加する
Next yLINE
Debug.Print "作られた本文は:[" & strDOC & "]です。" & vbCrLf & vbCrLf

' Outlook を 起動
Dim oApp As Object 'OutlookのApplication オブジェクトを入れる
Dim myNameSpace As Object '名前のスペースと言われても、、
Dim myFolder As Object 'フォルダー指定

'outlook 起動をCreateObjectで ※これだと複数起動してしまうがご勘弁を
Set oApp = CreateObject("Outlook.Application")

******

『本文は、送信文章シート…』からの辺りに記述すればいいのかなと参考書を調べたりしたのですがサッパリ分からず…。
VBAに詳しい方、教えていただけると大変助かります。

投稿日時 - 2010-03-15 11:49:07

QNo.5753325

すぐに回答ほしいです

質問者が選んだベストアンサー

手順の組み立ては次のとおりになります。

1.マスタシートのA列の上から下までのセルをFor Next巡回する
2.各セルのC列が1でなかったらスルーする、1なら次の作業を行う
3.各列のADE列のセルの内容を、雛形シートの所定のセルに転記する
4.拾ったマクロでアドレス設定、メールの本文整形、Outlookで送出まで行う
5.1に戻って繰り返す。



サンプル:
sub Macro1()
dim h as range

’1
for each h in worksheets("宛先マスタ").range("A2:A" & worksheets("宛先マスタ").range("A65536").end(xlup).row)

’2
if h.offset(0, 2) = 1 then

’3
worksheets("送信文章").range("A17") = h
worksheets("送信文章").range("A18") = h.offset(0, 3)
worksheets("送信文章").range("A19") = h.offset(0, 4)

’4
 アドレスのセット(掲示されていない)
 メール件名のセット
 メール本文の生成と送出

’5
End If
Next

End Sub

投稿日時 - 2010-03-15 14:01:05

補足

早々の回答ありがとうございます。
http://outlook.vba-ken3.jp/sample/001/2009-05-11.html

すみません、こちらのサイト様のサンプルファイルなのですが回答頂いたプログラムはどこに記述したらよいのでしょう?
一応上の方に記述してみたのですがエラーが出てしまいまして…。
どうしたらいいのかサッパリ分からないので再度教えていただけるとありがたいです。m(_)m

投稿日時 - 2010-03-15 14:54:37

ANo.1

このQ&Aは役に立ちましたか?

2人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問