• 締切済み

Excel2007のマクロについての質問です。

Excel2007で以下のようなマクロは、どのように作成すれば良いのでしょうか? マクロを実行すると、メールが作成される。ただし、アドレスにはセルC3の内容が入力されており、件名にはセルB2の内容が入力されており、メール本文にはセルA1の内容が入力されている。メールはOutlook2007を使用しています。 また、アドレスや件名や本文に特定の文字列を入力する方法や、WordまたはExcelファイルを添付する方法も教えて頂ければ幸いです。 以上、宜しくお願い致します。

みんなの回答

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.1

こんな感じで如何でしょうか。 Sub ボタン1_Click() '### 使用するクラスを宣言 Dim myOLApp As Object Dim myDATA As MailItem '### OUTLOOKのオブジェクトを作成後、メールを新規作成する。 Set myOLApp = CreateObject("Outlook.Application") Set myDATA = myOLApp.CreateItem(olMailItem) '### メールの宛先、題名、本文、添付ファイルを設定する。 '(宛先のアドレス) myDATA.To = Range("C3").Value myDATA.Subject = Range("B2").Value myDATA.Body = Range("A1").Value myDATA.Attachments.Add Range("A1").Value'A1セルに添付ファイルのパス、ファイル名 '### メールを送信 myDATA.Send '### お約束の後始末。 Set myDATA = Nothing Set myOLApp = Nothing End Sub

fantasio
質問者

補足

ご回答ありがとうございます。 Sub ボタン1_Click() Dim myOLApp As Object Dim myDATA As MailItem Set myOLApp = CreateObject("Outlook.Application") Set myDATA = myOLApp.CreateItem(olMailItem) myDATA.To = Range("C3").Value myDATA.Subject = Range("B2").Value myDATA.Body = Range("A1").Value myDATA.Attachments.Add Range("A1").Value myDATA.Send Set myDATA = Nothing Set myOLApp = Nothing End Sub というマクロを実行したのですが、以下のようなエラーメッセージが出てきてしまいました。どう対処すれば良いのでしょうか? 「コンパイルエラー:ユーザー定義型は定義されていません。」 上から3行目のmyDATA As MailItemの部分がハイライトされていました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 【Excel】VBAでメール作成

     毎日、Excel2003を利用してデータ入力をした後、内容をコピー&ペーストをしてOutlook2003でメールを作成する作業を行っております。量が多い為、大変時間がかかってしまっているので効率化を図りたく、この作業をマクロ(VBA)でコマンドボタンをクリックしたら、規定のセル内のデータがメールに記載され、あとは送信を押すだけにしたいと思っております。 例えば… セルA1に○○様と本文の頭になる文字 セルB1に本文 セルC1にTO セルD1にBCC セルE1に件名

  • エクセル2007マクロについて質問です。

    エクセル2007マクロについて質問です。 A1セルにメールアドレス A2セルに件名 A3セルに本文が入ったシートがあります。 上記の情報がすでに入っている状態で アウトルック2007を起動させるにはどうすればいいですか? (アウトルック2003のときはどうでしょうか?方法が違いますか?) ちなみに参照設定の参照可能なライブラリには Microsoft Outlook 12.0 Object しかありません。 送信はせずに、メーラーが開けばいいのです。 サーバーなどの設定も既定のまま変えずに開きたいのですが… どなたかご教示ください。 よろしくお願いします。

  • Excelファイルをマクロボタン一つでEメールで送ることはできませんか

    Excel2003を使用しています。 Excelのファイルをマクロボタン一つで特定の宛先にEメール(Outlook Express6.0)で送るマクロを作成したいのですが。 マクロの記録でメニューのファイル>送信>メールの宛先(添付ファイル)をやってみたのですが、宛先入力・送信は手動でやらないといけません。 これらを全てボタン一つでする方法はないでしょうか。

  • 【Excel VBA】データを集計する数式を入力するマクロ

    Excel2003を使用しています。   A列   B列   C列   D列   E列   F列 1      9/1                    20000 2      9/2              1000 3      9/10              5000 : : 10           9月計        ※1    ※2    11 12 13     10/1                   10000 14     10/10             2000 15     10/14                   4000 : : 20           10月計       ※3    ※4 上記のデータでいうと、 ※1(E10セル) =SUM(E1:E9) ※2(F10セル) =SUM(F1:F9) ※3(E20セル) =SUM(E13:E19) ※4(F20セル) =SUM(F13:F19) という内容の数式を入力するマクロを作成したく、数式を入力したいセルをアクティブにして、ボタン等に登録したマクロを実行すると数式が入力されるようにしたいと考えていますが、その際、集計範囲の最下行は、アクティブセルの1行上までになりますが、最上行をどのようにして取得すればよいかがわかりません。 (実際のデータは、もっと行数も入力されているデータ数も多いです) また、他にもこんな方法があるとか、こうしたほうが簡単とかあれば、教えていただけると勉強にもなりますので助かります。 うまく説明できなくて申し訳ありませんが、よろしくお願いします。

  • Excel2002 マクロで置換する際の分岐

    Excel2002でシート内の 特定の文字列を削除するマクロを 作成しようと考えています。 開くシートの内容は毎回決まっていません。 文字の削除は Cells.Replaceを使用して"あいうえお"→""のように行っています。 このような処理を行っている場合、開くシートによっては "あいうえお"という文字列が見つからない為エラーが出ます このエラーを回避にはどのように実装すればいいのでしょうか? ※もし特定の文字を削除する方法で別の方法があるようでしたら 教えていただけると助かります。

  • Excel2007のマクロについての質問です。

    Excel2007のマクロについての質問です。 利用者情報を、複数枚のシートに渡って作っています。 1枚目のシートの内容の一部を2枚目に複写するに際して、 「1枚目のA5のセルの内容を2枚目のA5に表示させる」 という内容のマクロを組みたいのですが、 カーソル位置をどこに置いておいてもその内容を実行させるには どういう内容のマクロを組んだらいいでしょうか? (現状のやり方ですと、カーソルを置いた位置で実行してしまうので、 表示がずれてしまいます) 内容が分かりにくかったらすみません。 よろしくお願いします。

  • OUTLOOK、OUTLOOK Expressでのメール受信について

    迷惑メールがかなり来ていて困っているのですが、OUTLOOKとOUTLOOK Expressで、件名だけを見て本文を受信するかどうかを決められる方法ってないですか? ”info”という文字列が含まれるメールアドレスからきたメールについてのみ、件名だけを受信して、本文を受信するかどうか決めたいのですが・・・。 よろしくお願いします。

  • マクロを作成するマクロを作成するには(Excel)

    すでにあるシートを見やすいように加工するマクロ(マクロ1とします)(並び替えたり、項目名の変更など)を作成し、それをマクロブックにして汎用運用しています。それで出来上がったシートに特定のセルをダブルクリックすれば、そのセルに今日の日付がセットされるマクロ(マクロ2とします)をその都度手書きで作成して実行しているのですが、そもそも前記のマクロ1の中にマクロ2を作成するマクロを記述したいのです。またマクロ2は特定シートにのみ有効となるように当該シートにはりつけています。作成方法をどなたかご教授よろしくお願いします。

  • Outlookで受信メールの件名を強制的に違う文字列に変換するマクロ。

    Outlookで受信メールの件名を強制的に違う文字列に変換するマクロ。 Outlookでメールを受信した際に、 受信メールの件名を強制的に特定の文字列(例えば"test"など)に 変換する事は可能なのでしょうか?

  • Excel2010でマクロが止まる

    Excel2003で作成したマクロがExcel2010で使えません。 内容は任意のフォルダ内にある同じフォーマットの複数のファイルを1ファイルづつ開いては別の1つのファイルのシート毎にコピーしていくマクロなんですが、21個目のファイルを開こうとした際にループが止まってしまいます。 どなたか解決方法をご存知でしたらご教授願います。

専門家に質問してみよう