[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『エクセル文章をメール本文にコピーしたとき改行されない』(ゆみ)
Sub TEXT_SEND_MAIL()
Dim MyData As DataObject
Dim maleTo As String
Dim ccTo As String
Dim bccTo As String
Dim mySubject As String
Dim URL As String
Set MyData = New DataObject
maleTo = "aaa@aaa.ne.jp"
ccTo = "aaa@aaa.ne.jp"
bccTo = "aaa@aaa.ne.jp"
mySubject = "テスト"
Sheets(1).Activate
Dim buf As String
Dim CB As New DataObject
Dim objCell As Range
Worksheets(1).Range("A6:B25").Select buf = "" For Each objCell In Selection buf = buf & vbNewLine & objCell.Value & vbNewLine Next With CB .SetText buf .PutInClipboard End With
MyData.GetFromClipboard
URL = "" & maleTo & "?Subject=" & mySubject & _
"&cc=" & ccTo & "&bcc=" & bccTo & "&body=" & MyData.GetText(1) ActiveWorkbook.FollowHyperlink Address:=URL, NewWindow:=True Set MyData = Nothing End Sub
vbNewLineを Chr(13) + Chr(10) に変えてもだめですかね? (稲葉)
稲葉サマ ご回答ありがとうございます。
試してみたものの、改行されず・・・
うーん、何が悪いのだろう。
(ゆみ)
ネット検索してみると、改行コード部分を "%0d%0a" でできるという話がありました。 (Notes ではうまくいきませんでしたが Outlook ではできるのかな)
それから、URL の先頭は "mailto:" ... ですね。 あとクリップボードを使う必要は無いような気がしますが・・・。
# % 抜けていたので修正 (Mook)
Notes では動かなかったけれど一応サンプル(改行コードなしでは動きました。) (Mook) Sub Sample() Const mailTo = "aaa@aaa.ne.jp" Const ccTo = "aaa@aaa.ne.jp" Const bccTo = "aaa@aaa.ne.jp"
Dim mySubject As String mySubject = "テスト"
Dim URL As String URL = "mailto:" & mailTo & "?Subject=" & mySubject & _ "&cc=" & ccTo & "&bcc=" & bccTo & "&body="
Dim objCell As Range For Each objCell In Worksheets(1).Range("A6:B10") URL = URL & objCell.Value & "%0d%0a" Next ActiveWorkbook.FollowHyperlink Address:=URL, NewWindow:=True End Sub
"%0d%0a"で改行できました!
とても助かります!
一つわからなかったのは、
Mook様に指摘頂いた
あとクリップボードを使う必要は無いような気がしますが・・・。
これは何故でしょうか?
outlookにエクセル文章をコピーする際、クリップボード経由でなければ出来ないと思っておりました。
教えて頂けますと幸いです。
(ゆみ)
アプリケーション間でデータをやり取りするときにクリップボードを使用するのはひとつの 方法ですが、オブジェクトとして扱えればその中で受け渡すこともできます。
もっとも今回は、EXCEL 内だけの話で OUTLOOK で貼り付け処理をしていないですから。 ハイパーリンクを実行した後、メールが起動するのは OS の機能です。 (Mook)
うちで使ってるやつ HTMLメールの方が色々使いやすくて・・・ Sub メール作成() Dim x As String '件名 Dim y As String '宛先 Dim z As String '本文
x = "テストメール"
y = "鈴木 一郎;田中 次郎"
z = "テストメールです。" & "<br>" & _ "このメールには返信しないでください。"
Call メール送信(x, y, z) End Sub
Sub メール送信(ByVal SBJ As String, ByVal MT As String, ByVal BD As String)
Dim OAP As Object 'アウトルックのアプリケーションオブジェクト Dim OLM As Object 'メールのオブジェクト
'アプリケーションオブジェクトの作成 With CreateObject("Outlook.Application").CreateItem(0) .To = MT '宛先 .Subject = SJ '件名 .HTMLBody = BD '本文の代入 HTMLメールにすることで、<br>等使える .Send '直接送信箱行き End With
End Sub
(稲葉)
ありがとうございます!
なるほどです・・・Excel側にHTMLを書いておけば編集しやすそうだし、
使い勝手よさそうですね!
参考に致します!
(ゆみ)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.