|
▼け さん:こんばんわ、ちんといいます。
ExcelのVBAで、
普段使用されてるメールソフトがMicrosoft Outlookでしたら、
VBAでメールソフトを起動し、シートをコピーし、
テキスト文のみメールに貼り付け、送信する。で、どうでしょうか?
※Outlook Expressを使用していると、ソースが異なります。
Microsoft Outlookでのサンプルです。
Sub MAKE_MAIL_ITEM_TEST_NG()
Dim oApp As Object
Dim myNameSpace As Object
Dim myFolder As Object
Dim objMAIL As Object 'メールのオブジェクト
Dim strMOJI As String '本文
'outlook 起動
Set oApp = CreateObject("Outlook.Application")
Set myNameSpace = oApp.GetNamespace("MAPI")
Set myFolder = myNameSpace.GetDefaultFolder(6) '規定のフォルダーを指定
myFolder.Display '表示 いつものクセで .Visible = True とやりがちだけど
Cells.Select '*** シートのセル全て選択
Selection.Copy '*** シートのコピー
'メールアイテムの作成
Set objMAIL = oApp.CreateItem(0) 'olMailItem=0 直値はいけないと思いつつ、
objMAIL.Display '画面表示(Mail入力、編集画面を表示)
'宛先・件名・本文 などのデータを代入する
objMAIL.To = "******@yahoo.co.jp"; '宛先 ほかに.cc や.Bccも可能です
objMAIL.Subject = "テスト メールの件名です " '.Subjectに文字列設定で件名
'本文を作る、(vbCrLfで改行されます)
strMOJI = "こんにちは(このメールtest)"
Dim buf As String, buf2 As String, CB As New DataObject
buf = "tanaka"
With CB
.GetFromClipboard ''クリップボードからDataObjectにデータを取得する
buf2 = .GetText ''DataObjectのデータを変数に取得する
End With
'' MsgBox buf2
objMAIL.Body = buf2 '※Excelのコピーしたものをテキスト文のみメールに貼り付け
Application.CutCopyMode = False 'クリップボード クリア
objMAIL.Display '編集画面のまま止めておきたい時 や テスト中に動作を見たいとき
'objMAIL.Save '保存、下書きへ 保存後、用が無かったら.Closeで閉じるのがいいのかなぁ。。。
'objMAIL.Close 2 '閉じる Mailの編集画面を閉じる
objMAIL.Send '送信箱へ ※セキュリティの警告メッセージが出るよ
'ここで、普通はオブジェクトの開放など、後始末をする。
Set myFolder = Nothing
Set myNameSpace = Nothing
Set oApp = Nothing
End Sub
|
|