いろいろ検索や質問をしてエクセルVBAで、下記のコードによりOutlookのメールを自動作成できるようになりました。
Sub TEST01()
Set oApp = CreateObject("Outlook.Application")
Set objMAIL = oApp.CreateItem(0) 'olMailItem=0
strMOJI = "こんにちは!" & vbNewLine & "テストメールです。" & vbNewLine & "よろしくおねがいします。"
objMAIL.To = "XXXX@XXXXX.co.jp" '宛先
objMAIL.Subject = "テスト" '件名
objMAIL.Body = strMOJI '本文の代入
objMAIL.display '表示
End Sub
それで、実際にはstrMOJI に代入した文字列の下に、このマクロを記述してあるBOOKのSheets("Sheet1").Range("A1:D10")をコピーし、
「リッチテキスト形式」で貼り付けたいのです。
どのようなコードに変えればよいのか教えていただけると助かります。
よろしくお願いいたします。
No.3ベストアンサー
- 回答日時:
>ただ、マクロを2回以上走らせると、その都度いくつもOutlookが立ち上がってしまいます。
>これは解消できますか?
それは前回QAで手当て済みだったんですけどね。
Dim oApp As Object
Dim objMAIL As Object
Dim strMOJI(1) As String
Dim n As Long
On Error Resume Next
Set oApp = GetObject(, "Outlook.Application")
On Error GoTo 0
If oApp Is Nothing Then
Set oApp = CreateObject("Outlook.Application")
oApp.GetNamespace("MAPI").GetDefaultFolder(6).display
End If
Set objMAIL = oApp.CreateItem(0)
strMOJI(0) = "こんにちは!" & vbCrLf & _
"テストメールです。" & vbCrLf & _
"よろしくおねがいします。" & vbCrLf
strMOJI(1) = "以上です。" & vbCrLf & _
"EMAX株式会社" & vbCrLf & _
"Emax"
objMAIL.To = "E-Mail_Address_Here"
objMAIL.Subject = "テスト"
objMAIL.BodyFormat = 2 'HTML形式
objMAIL.Body = strMOJI(0) & strMOJI(1)
objMAIL.display
n = Len(strMOJI(0))
ActiveSheet.Range("A1:D10").Copy
oApp.ActiveInspector.WordEditor.Range(n, n).Paste
Application.CutCopyMode = False
Set objMAIL = Nothing
Set oApp = Nothing
BodyFormatはHTML形式じゃないと書式が維持できないような感じです。
#バージョン、もしくは受信側のメーラーによるかもしれませんけど..
何から何までありがとうございます。
わからないことだらけですが、やりたいことができました。
感謝いたします。
これからもご指導賜りますようお願い申し上げます。
No.2
- 回答日時:
>なお、エクセルのバージョンは2010、Outlookは2007です。
EnvelopeVisibleプロパティは同一バージョンでないとエラーになるようです。(by Google君)
次案ですが、Sendkeysはトばして..Outlookのオプションの「メール形式」のところで
「電子メールの編集に..Word..を使用する..」的なチェックがあったらチェック入れておいて下記試してみて下さい。
#Outlook2007持ってないのでアヤフヤ
Dim oApp As Object
Dim objMAIL As Object
Dim strMOJI As String
Set oApp = CreateObject("Outlook.Application")
oApp.GetNamespace("MAPI").GetDefaultFolder(6).display
Set objMAIL = oApp.CreateItem(0)
strMOJI = "こんにちは!" & vbNewLine & _
"テストメールです。" & vbNewLine & _
"よろしくおねがいします。" & vbNewLine
objMAIL.To = "E-Mail_Address_Here"
objMAIL.Subject = "テスト"
objMAIL.BodyFormat = 3
objMAIL.Body = strMOJI
objMAIL.display
ActiveSheet.Range("A1:D10").Copy
With oApp.ActiveInspector.WordEditor.Range
.Collapse 0
.Paste
End With
Application.CutCopyMode = False
Set objMAIL = Nothing
Set oApp = Nothing
ありがとうございます。
すごいです!
> 「電子メールの編集に..Word..を使用する..」的なチェックがあったらチェック入れておいて
見当たらないのでなにもしませんでしたがちゃんと出来ました。
ただ、マクロを2回以上走らせると、その都度いくつもOutlookが立ち上がってしまいます。
これは解消できますか?
また、ここまでできると欲が出てしまいました。
下記のように文字列の変数を2つもち、セル範囲を貼り付けた下にも文字列 strMOJI(1) を入れることは可能でしょうか?
勝手なことばかり言って申し訳ありません。
Sub twst02()
Dim oApp As Object
Dim objMAIL As Object
Dim strMOJI(1) As String
Set oApp = CreateObject("Outlook.Application")
oApp.GetNamespace("MAPI").GetDefaultFolder(6).display
Set objMAIL = oApp.CreateItem(0)
strMOJI(0) = "こんにちは!" & vbNewLine & _
"テストメールです。" & vbNewLine & _
"よろしくおねがいします。" & vbNewLine
strMOJI(1) = "以上です" & vbNewLine & _
"EMAX株式会社" & vbNewLine & _
"Emax"
objMAIL.To = "E-Mail_Address_Here"
objMAIL.Subject = "テスト"
objMAIL.BodyFormat = 3
objMAIL.Body = strMOJI(0)
objMAIL.display
ActiveSheet.Range("A1:D10").Copy
With oApp.ActiveInspector.WordEditor.Range
.Collapse 0
.Paste
End With
Application.CutCopyMode = False
Set objMAIL = Nothing
Set oApp = Nothing
End Sub
No.1
- 回答日時:
HTML形式ではダメなんでしょうか。
こちらにサンプルが載ってますし
『Excel 2002 または Excel 2003 で Visual Basic for Applications を使用して電子メール メッセージでセル範囲を送信する方法』
http://support.microsoft.com/kb/816644/ja
上記例のままでも[この選択範囲を送信する]で送信。
必要なら新規Bookにコピーするように変更したり。
Sub try()
Dim r As Range
Set r = ActiveSheet.Range("A1:D10")
With Workbooks.Add(xlWBATWorksheet)
.EnvelopeVisible = True
With .Sheets(1)
With .MailEnvelope
.Introduction = "こんにちは!" & vbNewLine & "テストメールです。" & vbNewLine & "よろしくおねがいします。"
.Item.To = "E-Mail_Address_Here"
.Item.Subject = "テスト"
'.Item.Send
End With
r.Copy .Range("A1")
End With
End With
End Sub
他には
・不安定だけど妥協してSendkeysを使う。
・(Outlookメール編集にWordを使っている場合)OutlookのActiveInspector.WordEditor.Range.Pasteメソッドを使う。
・セル範囲をhtm形式に吐き出してHTMLBodyに読み込む。(HTML形式メール)
・Win32API関数を使ってクリップボードからHTML Formatを取り出してHTMLBodyに読み込む。(HTML形式メール)
などが考えられない事もないです。
end-uさん、前回もありがとうございました。
今回もさっそくありがとうございます。
試してみましたが、参考URLのものも、end-uさんご提示のものも
.EnvelopeVisible = True
のところで実行時エラー1004「EnvelopeVisibleメソッドは失敗しました。Workbookオブジェクト」となります。
なお、エクセルのバージョンは2010、Outlookは2007です。
> HTML形式ではダメなんでしょうか
貼り付けたあと、編集が可能ならOKです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
【お題】NEW演歌
【大喜利】 若い人に向けたことは分かるけど、それはちょっと寄せ過ぎて変になってないか?と思った演歌の歌詞
-
これ何て呼びますか
あなたのお住いの地域で、これ、何て呼びますか?
-
メモのコツを教えてください!
メモを取るのが苦手です。 急いでメモすると内容がごちゃごちゃになってしまったり、ひどいときには全く読めない時もあります。
-
自分のセンスや笑いの好みに影響を受けた作品を教えて
子どもの頃に読んだ漫画などが その後の笑いの好みや自分自身のユーモアのセンスに影響することがあると思いますが、 「この作品に影響受けてるな~!」というものがあれば教えてください。
-
高校三年生の合唱祭で何を歌いましたか?
大人になると大人数で合唱する機会ってないですよね。 思い出すと、高校三年生の合唱祭が最後でした。 そこで、みんなの思い出の合唱曲を知りたい!
-
ExcelVBAでOutlookにセル内容を送る
その他(プログラミング・Web制作)
-
VBAのフォント変更(エクセルからoutlookのメール作成において)
Visual Basic(VBA)
-
Excel VBA メール作成について 下記についてどのように記述したらいいか、教えて頂けると幸いで
Visual Basic(VBA)
-
-
4
Excel VBA メール作成について 本文の中にExcel でコピーした図を上下に2つ 貼り付けを
Visual Basic(VBA)
-
5
Access 開くときに自動で参照設定
その他(Microsoft Office)
-
6
エクセルVBAでOutlookメールの書式を変える
Excel(エクセル)
-
7
エクセル VBA メール本文に指定セルに記載されているURLをリンクとして記載する方法
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/12】 急に朝起こしてきた母親に言われた一言とは?
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・好きな「お肉」は?
- ・あなたは何にトキメキますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
受信メールの添付ファイル忘れ...
-
お祝い金を徴収するメールの書き方
-
送信エラーの際、CCには届い...
-
一度聞いたかも知れないのをっ...
-
メール送信すると以下のような...
-
相手にメールを送信したら、 Ea...
-
通帳口座番号 メールで送っても...
-
失礼な文とは分からず、先生に...
-
送信しても『Mail System Error...
-
空メールって何も書かなくてい...
-
エクセルを更新したらメールが...
-
iphoneからメールで写真を送付...
-
"***@***.ocn.ne.jp"の"@***"は...
-
メールの一斉送信で非対象者に...
-
メールの書き方 保護者から先生へ
-
Winmail.dat ファイルが開けない
-
今日朝に、誰かと間違ってメー...
-
一つのメールアドレスで色んな...
-
メールの“不達通知” 英語が読め...
-
PCでThunderbirdのメールを使っ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
受信メールの添付ファイル忘れ...
-
お祝い金を徴収するメールの書き方
-
一度聞いたかも知れないのをっ...
-
詐欺メールでしょうか?
-
送信エラーの際、CCには届い...
-
メール送信すると以下のような...
-
送信しても『Mail System Error...
-
失礼な文とは分からず、先生に...
-
通帳口座番号 メールで送っても...
-
"***@***.ocn.ne.jp"の"@***"は...
-
株式会社NSCと言う所から、現金...
-
今日朝に、誰かと間違ってメー...
-
iphoneからメールで写真を送付...
-
メールの一斉送信で非対象者に...
-
メールの“不達通知” 英語が読め...
-
URLをコピーしてメールにリ...
-
Winmail.dat ファイルが開けない
-
訳せる方お願いします!!
-
メールの最後に「それでは失礼...
-
PCでThunderbirdのメールを使っ...
おすすめ情報