解決済みのQ&A
エクセルのVBAを使って、ノーツメールを送りたいのですが
エクセルのVBAを使って、ノーツメールを送りたいのですが
エクセルのVBAを使って、以下の要領でノーツメールを送信したいのですが、どのようにVBA
に記述したらよろしいのでしょうか?
①ノーツメールに指定のブックを添付します。(ブック名:テスト.xls) ブックはCドライブの直下に置かれています。
②宛先アドレスは前記①のブックの「sheet1」のセルA1に記載されています。
③件名は前記①のブックの「sheet1」のセルB1に記載されています。
④本文は改行を含む複数行を想定しています。
⑤CC・BCCは設定しません。
ちなみに、エクセルは2003、OSはXPとなります。
何卒、よろしくお願いします。
-
- 質問日時:
- 2010/7/24 11:15:35
-
- 解決日時:
- 2010/7/26 21:42:39
-
- 回答数:
- 1
-
- お礼:
- 知恵コイン
- 100枚
-
- 閲覧数:
- 3,653
-
- ソーシャルブックマークへ投稿:
- Yahoo!ブックマークへ投稿
- はてなブックマークへ投稿
- (ソーシャルブックマークとは)
ベストアンサーに選ばれた回答
こんにちは。
http://homepage3.nifty.com/belie/vba/vba033.htm
が一番サンプルとして有効です。
Excel97でNotes4.6用に作ったものだが、多分 どのバージョンでも動くと思います。
Const EMBED_ATTACHMENT As Integer = 1454
Public Sub SendNotesMail()
Dim wkNSes As Object ' lotus.NOTESSESSION
Dim wkNDB As Object ' lotus.NOTESDATABASE
Dim wkNDoc As Object ' lotus.NOTESDOCUMENT
Dim wkNRtItem As Object ' lotus.NOTESRICHTEXTITEM
Dim wkNAtt As Object ' lotus.NOTESEMBEDDEDOBJECT
Dim AttFName As String ' 添付ファイル名(フルパス)
' Notesのセッションを起動する
Set wkNSes = CreateObject("Notes.NotesSession")
' NotesDatabaseオブジェクトを作成し、そのデータベースを開く
Set wkNDB = wkNSes.GETDATABASE("", "")
' NotesDBをユーザーのメールDBに割り当てた後に開く
wkNDB.OpenMail
' NotesDBに文書を作成し、新規文書をオブジェクト変数にセットする
Set wkNDoc = wkNDB.CREATEDOCUMENT()
' 件名をセットする
wkNDoc.Subject = "テスト(タイトル)"
' 宛先をセットする
wkNDoc.SendTo = Array("belie.kondo@mbh.nifty.com")
'wkNDoc.CopyTo = Array("xxx@xxx")
'wkNDoc.blindCopyTo = Array("xxx@xxx")
' 文書にリッチテキストアイテムを作成する
Set wkNRtItem = wkNDoc.CreateRichTextItem("BODY")
' 本文をセットする
With wkNRtItem
.APPENDTEXT "本文(1行目)"
.ADDNEWLINE 1
.APPENDTEXT "本文(2行目)"
.ADDNEWLINE 2
' 添付ファイル名をセットする
AttFName = "D:\TEST\Book1.xls"
' ファイルを添付する
Set wkNAtt = .EmbedObject(EMBED_ATTACHMENT ,"" ,AttFName)
.ADDTAB 1
.ADDNEWLINE 1
End With
' メールを送信する
wkNDoc.Send False
' オブジェクト変数を解放する
Set wkNAtt = Nothing
Set wkNRtItem = Nothing
Set wkNDoc = Nothing
Set wkNDB = Nothing
Set wkNSes = Nothing
MsgBox "メール発信", vbOKOnly + vbInformation
End Sub
Notesが起動していることが前提。
これ、添付の操作もありますし、VBAにそのまま使えるようなメソッドです。
それから、「エクセルの中のメールアドレス」ですが、
ブックを開いて、アドレスなどを変数に取得して、ブックを閉じる、
というように、順番に処理したら、問題ないです。
(添付する瞬間はブックを閉じておいてください)
- 回答日時:2010/7/24 13:39:28
このQ&Aはまだナイス!されていません。
役に立ったと思った回答に、ナイス!してみよう!
あなたにおすすめの解決済みの質問
- Excelブック間でのデータ抽出に関するVBAについて皆様、いくら考えても答えが見つからないので、ご教授...
- ブック間でのデータ抽出について皆様、いくら考えても答えが見つからないので、ご教授ください。ブック...
- エクセルで全体から最大値を求めた後、その最大値のセルから+100~+10000行の間での最大値を求めるVBAの...
あなたにおすすめの知恵ノート
- エクセルなどで利用する為にディレクトリ内のファイル名一覧をテキスト化する方法
質問した人からのコメント
本日、会社で行ってみました。完璧でした。
いただきました、コードをアレンジして、異なる宛先に対して、宛先毎の固有のファイルを添付し、メール送信するようなことにトライしてみます。
本当にありがとうございました。