いろいろ検索や質問をしてエクセル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")をコピーし、
「リッチテキスト形式」で貼り付けたいのです。
どのようなコードに変えればよいのか教えていただけると助かります。
よろしくお願いいたします。

このQ&Aに関連する最新のQ&A

A 回答 (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形式じゃないと書式が維持できないような感じです。
#バージョン、もしくは受信側のメーラーによるかもしれませんけど..
    • good
    • 2
この回答へのお礼

何から何までありがとうございます。
わからないことだらけですが、やりたいことができました。
感謝いたします。
これからもご指導賜りますようお願い申し上げます。

お礼日時:2012/08/17 17:58

>なお、エクセルのバージョンは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
    • good
    • 1
この回答へのお礼

ありがとうございます。
すごいです!

> 「電子メールの編集に..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

お礼日時:2012/08/16 18:10

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形式メール)
などが考えられない事もないです。
    • good
    • 0
この回答へのお礼

end-uさん、前回もありがとうございました。
今回もさっそくありがとうございます。

試してみましたが、参考URLのものも、end-uさんご提示のものも

.EnvelopeVisible = True

のところで実行時エラー1004「EnvelopeVisibleメソッドは失敗しました。Workbookオブジェクト」となります。
なお、エクセルのバージョンは2010、Outlookは2007です。

> HTML形式ではダメなんでしょうか

貼り付けたあと、編集が可能ならOKです。

お礼日時:2012/08/16 14:36

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aと関連する良く見られている質問

Q相手の文章の書き方が気にいらないってありますよね。 メールしてると文章の書き方にイライラしたり、Tw

相手の文章の書き方が気にいらないってありますよね。
メールしてると文章の書き方にイライラしたり、Twitterの書き込みもイライラする書き方してる人がいますが、この場合どちらが悪いのですか?

イライラさせる相手と、イライラする自分。

Aベストアンサー

敢えて答えるなら、イライラしてるあなたが悪いかな。
そもそも、あなたの文章も褒められたものでは無いです。例えば、
「いらないって」の(〜って)が話し言葉になっています。「気にいらないときありますよね。」と、書き言葉に置き換えた方が適切かと思います。自分が間違えてるのに他人のだけは指摘するなんて性格悪いですね。
また、Twitterについてはあなた個人だけに向けた発言以外なら、気にするべきじゃない。それが、不快ならTwitter辞めるのを薦めます。

Q文字コードUTF-8で作成したエクセル(2003)文書を文字コードSh

文字コードUTF-8で作成したエクセル(2003)文書を文字コードShift_JISに変更したいのですが、変更方法をご教示ください。

Aベストアンサー

いろいろな角度から検証してみて、#1さんがお聞きになっていることは、内容的に同じですが、一体、Excel上で、UTF-8のExcelの「文書」というものが存在するものだろうか、と思うのです。

例えば、UTF-8 とというと、以下のようなスタイルを思い浮かべます。
%e3%81%82%e3%81%84%e3%81%86%e3%81%88%e3%81%8a
こういうスタイルになるのでしょうか。内容は、「あいうえお」と書かれているものです。
しかし、そのようなものを変換するなら、ネット上には、オンラインのデコーダーがありますから、そこで貼り付けて変換すればよいです。

http://user1.matsumoto.ne.jp/~goma/js/utf.html

それとも、文字化け状態で、「縺ゅ>縺・∴縺」となっているのでしょうか。(おなじく「あいうえお」)ここに表示したものは、バイナリコードが落ちているので戻りませんが、UTF-8 をShift-JISで見た感じです。

何をもって、UTF-8 で作成したと言えるものでしょうか。
仮に、設定の中の、WebオプションをUTF-8 したところで、スタティック・ファイル(xls)は、Shift-JIS だけしかありません。Web ファイル(html/htm) だけが、UTF-8になるだけです。これを戻すなら、Webオプションを、Shift-JISに戻せばよいだけです。

いろいろな角度から検証してみて、#1さんがお聞きになっていることは、内容的に同じですが、一体、Excel上で、UTF-8のExcelの「文書」というものが存在するものだろうか、と思うのです。

例えば、UTF-8 とというと、以下のようなスタイルを思い浮かべます。
%e3%81%82%e3%81%84%e3%81%86%e3%81%88%e3%81%8a
こういうスタイルになるのでしょうか。内容は、「あいうえお」と書かれているものです。
しかし、そのようなものを変換するなら、ネット上には、オンラインのデコーダーがありますから、そこで貼り付けて変...続きを読む

Qメールの書き方の昨今

メールの書き方、昔と今で変わっていますか?。

私がメールをやるようになったころは、

 ○○(差出人)です。
 本文(できるだけ簡潔に。長文を詫びる。)

という書き方が多かったように思います。
このごろでは

 △△(宛先)さま
 本文(長い。顔文字とかも入る。)
       ○○(差出人)

という書き方をよく見かけます。

高速、大容量の時代ですから、本文が長くなるのは当然の変化だと思います。
一方、宛先を最初に書いて差出人を最後に書くというのは思いがけない変化と感じているのですが、メールでの宛先や差出人の書き方の作法、その昨今での変化というものはあるのでしょうか。

よろしくお願いします。

Aベストアンサー

私の身のまわりでは、パソコンのメールでも最初に名乗る人って
滅多に居ませんね。私は必ず名乗りますが・・・

ビジネスの場合、たまに「○○さんへ」というのは書きます。
これは内緒で上司にBCCで送る場合、一瞬上司が「なんでこんな
メールが?!」と、特に携帯メールで受信した(転送している)場合、
意味がわからないんですが、「○○さんへ」と書いてると、自分に
宛てたものではないけど、BCCで送ってくれたものだな、と判断
できるからです。

友人同士のメールの場合、それほどマナーは気にしませんが
「こんにちは」とかのタイトル、多いですね。
タイトルで読む順番を変えるほどメールは大量にこないのですが
タイトルってけっこう大切だと私は思っています。

QOutlook2007 VBAからメニューコマンドを実行するコード

Outlook2007を使っていますが
VBAからメニューの中にある
アクション/迷惑メール/送信者を「受信拒否リスト」に追加
というコマンドを実行するには
どのようなコードを記述すればよいのでしょうか。
よろしくお願いします。

Aベストアンサー

2007 ということで
文字通り、メニューの実行。

メールを1個選択しておいて実行します。

Sub Sample()
  Dim oExp As Outlook.Explorer
  Dim oBar As Office.CommandBar

  Set oExp = Outlook.ActiveExplorer
  Set oBar = oExp.CommandBars.Item("Menu Bar")

  oBar.FindControl(ID:=9786, recursive:=True).Execute
End Sub

最後にダイアログが表示されますが
「今後このダイアログを表示しない」にチェックを入れると
表示されなくなるんでしょうね、きっと。
やってみる気にはなれないけど。


まとめて処理するなら、こんなのも有ります。

迷惑メールに保存されているメールの差出人を受信拒否リストに追加するマクロ
https://outlooklab.wordpress.com/2011/07/29/%E8%BF%B7%E6%83%91%E3%83%A1%E3%83%BC%E3%83%AB%E3%81%AB%E4%BF%9D%E5%AD%98%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%82%8B%E3%83%A1%E3%83%BC%E3%83%AB%E3%81%AE%E5%B7%AE%E5%87%BA%E4%BA%BA%E3%82%92%E5%8F%97/

2007 ということで
文字通り、メニューの実行。

メールを1個選択しておいて実行します。

Sub Sample()
  Dim oExp As Outlook.Explorer
  Dim oBar As Office.CommandBar

  Set oExp = Outlook.ActiveExplorer
  Set oBar = oExp.CommandBars.Item("Menu Bar")

  oBar.FindControl(ID:=9786, recursive:=True).Execute
End Sub

最後にダイアログが表示されますが
「今後このダイアログを表示しない」にチェックを入れると
表示されなくなるんでしょうね、きっと。
やってみる気...続きを読む

Q中途採用の面接での返信メールの正しい書き方

中途採用の面接での返信メールの正しい書き方

中途採用で履歴書を送ったところ、面接のお知らせが来たのですが、ご都合のいい日を教えて下さい。
とのことなのですが、どういった書き方が正しいのでしょうか?
それとも、そこまで深く考えず普通にメールを返信すればよろしいのでしょうか?

ご教授お願いします。

Aベストアンサー

常識の範囲で大丈夫です。
メールですから手紙のような形式ではなくビジネスメールの形式と言うものがあります。

件名はRe:付きの方がどの件だか分かるとか、貰ったメールを消さないほうが分かっていいという人もいるのでどちらでも失礼という事はないでしょう。用は一目でどの件だか分かればいいわけです。
ご自身の気持ちで丁寧で一目で理解できるものだと思うほうを選べばいいと思います。

宛名は送信者の名前が分かっていてその方に返信するなら、部署名とその方の名前を記述します。御中と様の使い方は手紙と同じです。

手紙にある時候の挨拶や拝啓などは不要。メールの場合は、相手に時間を掛けさせずに内容を伝える事も大事です。できるだけスクロールさせずにおさまる程度全体的に画面1つか、せいぜい1回スクロール程度におさまる長さにします。手紙にある時候の挨拶や拝啓は、ビジネスでは書面の時のみです。

まず、書類選考とメール送信に関するお礼を述べます。
それからすぐに本題に入ってかまいません。都合のいい日は相手の都合もあるので第3候補くらいまで記述していると余計な手間が掛からないと思います。
何か聞きたい事があるなら質問します。

一言添えて、自身の氏名で締めます。

「ビジネスメールの書き方」、「メール 転職」などのキーワードで検索すると書き方のヒントがたくさん見つかるでしょう。
よほど失礼に当たる文章、意味が理解できない文章、あて先が間違っているなどでもない限り、大きな問題にはなりません。ビジネスマナーの範囲で書けば大丈夫です。

あと、できれば使用するメールアドレスは氏名を使用するなど相手が確認しやすいもので、恥ずかしくないものがいいです。以前、就職の応募者のメールで「love」とか「happy」とか「whiterose」とか「sexy」とか使っているものがたまにあって常識を疑われていたのと、笑い話になってしまいます。

常識の範囲で大丈夫です。
メールですから手紙のような形式ではなくビジネスメールの形式と言うものがあります。

件名はRe:付きの方がどの件だか分かるとか、貰ったメールを消さないほうが分かっていいという人もいるのでどちらでも失礼という事はないでしょう。用は一目でどの件だか分かればいいわけです。
ご自身の気持ちで丁寧で一目で理解できるものだと思うほうを選べばいいと思います。

宛名は送信者の名前が分かっていてその方に返信するなら、部署名とその方の名前を記述します。御中と様の使い方は手紙...続きを読む

QJANコード、ITFコードの作成

教えて下さい。
入力されたコード(数字)からJANコード、ITFコードを作成したいのですがその様なフリーソフトはありますでしょうか?

また、Excelで作成していく事は出来ますでしょうか?出来るならやり方を教えて下さい。
※国、会社コードは取得済みです。

Aベストアンサー

私が使っているのは
http://www.geocities.jp/io_collabo/Free_Soft.htm#FS-13
計算よりも仕様書などに貼り付けるコードの画像を取得することにしか使ってませんけど。

>Excelで作成していく事は出来ますでしょうか?
できます。
計算式の考え方は
http://www.asahi-net.or.jp/~ef2o-inue/shiki/sub03_030_20.html
ですが、チェックデジットを求める桁数により計算式が少しずつ変わってくることや、すべてを一つのセルに入力するのかそれとも国会社コードは固定して商品コード(物流コード)の5桁だけを入力するのかとか、一桁ずつ別々のセルに入力するのかなどで計算式は変わってくることにご注意下さい。

バーコードまで作成するなら
http://www.a-poc.co.jp/howto/howto_excel_ocx_02.html
を参照してください。

Q女の子の文字の書き方・メールなどの書き方

高校の研究課題で私は「女の子の文字・メールについて」と言う課題を
考えています。女友達に聞いたのですが
よくわからないとの答えでした。そこで皆さんにお聞きしますが
女の子の文字はなんとなく
丸いと言うか男の方の書く文字とどこか違いますよね?
その女の子の文字の書き方を教えていただけませんか?

ほかにもメールなどをしていると
「いちおう→ぃちょう」などと変換されていたりなどしますよね?
こちらの女の子の書くメールの書き方などを教えていただきたいのです。

Aベストアンサー

年齢的に女の子に入るので答えさせていただきます^^
女の子といっても十人十色で、書き方はさまざまですよ。
 
>丸いと言うか男の方の書く文字とどこか違いますよね?
>その女の子の文字の書き方を教えていただけませんか?
確かにそうですね。男の方の丸文字を時々見かけますが、女の子に多いですね。私もそうです。特に意識しているわけじゃないので、自然に書いているという感じですかね。私の場合は、前に丸文字を見た時に「かわいい~」と思ったので、その影響が少なからずあるとは思います。
 
>「いちおう→ぃちょう」などと変換されていたりなどしますよね?
これもさまざまで、特にきまりはないんです。その時の気分や、その人の個性で変換するか決めていると思います。女の子でも「小文字が多いの苦手だなぁ」という人は、ほとんど変換することなくメールを書きます。逆に「こういう書き方はかわいいし、読みやすい」と思っている方はたくさん変換して書くと思いますよ。
 
私の身近で多いのは、
「おはよう」→「ぉはよう」
「そうだよね」→「そぅだよねぇ」
でしょうか。本当にさまざまです。
 
小文字がすごく好きな方は、変換できる限りの文字を、全て小文字にして送ってきますよ。

年齢的に女の子に入るので答えさせていただきます^^
女の子といっても十人十色で、書き方はさまざまですよ。
 
>丸いと言うか男の方の書く文字とどこか違いますよね?
>その女の子の文字の書き方を教えていただけませんか?
確かにそうですね。男の方の丸文字を時々見かけますが、女の子に多いですね。私もそうです。特に意識しているわけじゃないので、自然に書いているという感じですかね。私の場合は、前に丸文字を見た時に「かわいい~」と思ったので、その影響が少なからずあるとは思います。
 
>「...続きを読む

QエクセルVBAのoutlook操作について

こんばんわ!

http://www.ken3.org/cgi-bin/group/vba_outlook.asp
を参考にエクセルVBAを用いてOutlookからメールをエクセルに出力しているのですが、一度エクセルに出力したメールをOutlookから消すことはできるのでしょうか?

アドバイスや方法をお願いいたします。

ちなみにエクセル2003でやっています!

Aベストアンサー

>エクセルVBAを用いてOutlookからメールをエクセルに出力しているのですが
実際に、エクセルに出力している部分だけでも結構なので
現在のコードを提示していただかないと回答も付きにくいと思います。
OutLookのVBAのHelp で MailItem Delete と検索してみるとヒントがあると思います。
エクセルに出力した MailItem を削除するやり方ですが。

http://oshiete.goo.ne.jp/qa/7062621.html
にも同じ質問をなされていますが、ルール違反になります。
どちらかを削除されて、この回答の後にでも補足してみてください。
識者からの回答が得られると思います。

Qビジネスのメールの書き方

ときどき、全国の販売会社の担当者あてにメールを送信しています。
本文の最初に「いつもお世話になっております。」といつも書くのですが、
先日、この書き方を指摘されました。
この文句は男性が使うものだ!と。では、女性は何を使えばいいのでしょうか?
「いつもお世話様です」ですか?何がどうまずいのか、理解できないのですが、
どなたか教えてください。
それと、文章自体が苦手なので、ビジネスメールの書き方の参考になるサイトなどがありましたら、教えてください。お願いします。

Aベストアンサー

>「いつもお世話になっております。」
男性も、女性も区別などありません、これで充分です。
ビジネスメールは、簡単明瞭・簡潔が命です。

下記のページを参考にしてください。

ビジネスメールの書き方
http://homepage1.nifty.com/event-go/doc/e-mail.htm

ビジネスメールが書けますか?
http://www.will-way.com/prosoho/check_mail.htm

仕事で使えるビジネスメールの書き方 リンク集http://allabout.co.jp/computer/email/subject/msub_bm.htm?FM=mc

QOutlook2007の検索フォルダでドメイン名で作成したい。

Outlook2007の検索フォルダでドメイン名を指定して作成したいです。
作成しようとしたのですが、差出人の項目はあるのですが、メールアドレスを指定することはできませんでした。

例えば、
***@mail.goo.ne.jp、***@xxx.goo.ne.jp、***@yyy.goo.jp
を「goo」をキーワードに検索フォルダを作成したい。

不可能なのでしょうか?

Aベストアンサー

検索フォルダの条件に差出人のアドレスを含めることはできませんが、自動仕分けのルールでは指定できます。
そこで、以下のようにしてはどうでしょうか?

1. 自動仕分けのルールで差出人のアドレスに goo という文字列が含まれる場合に、分類項目 goo を割り当てるというルールを作成する。
2. 分類項目が goo という検索条件の検索フォルダを作成する。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング