こんにちは、Ryoです。
VBAで処理した結果などによっては、ブックをそのままメールの添付ファイルにしてしまいたいこともあるかと思います。Dialogsプロパティと定数のxlDialogSendMailを使うことで「宛先」「件名」「受信通知有無」の設定とメール作成までは出来ますので、今回はその方法について書いてみたいと思います。
1.サンプル概要
Sheetには何も書いていませんが、Book1.xlsxを添付ファイルとして「宛先」「件名」が書かれた状態のメールを作成します。
このBook1を対象にサンプルコードを実行することで、以下のようにメールが作成されます。
2.サンプルコード
Sub Sample1() Application.Dialogs(xlDialogSendMail).Show _ arg1:="Sample1@****.com", arg2:="サンプル表示です", _ arg3:=True 'xlDialogSendMailは「arg1⇒宛先」、「arg2⇒件名」 '「arg3⇒受信通知有無」の指定のみ出来ます End Sub
サンプルコードとしてはこれだけでメールを作成することが出来ます。
実行していることは「メール編集画面を開く」「宛名/件名/受信通知の設定」ですね。
Dialogsプロパティの構文としては、
オブジェクト.Dialogs(index)
となっていて、引数indexに定数xlDialogSendMailを指定し、Showメソッドと組み合わせることで、本例のような処理になります。
サンプルコード内にコメントでも書いていますが、xlDialogSendMailは「宛先」「件名」「受信通知有無設定」のみ指定が出来ますので、cc指定などは不可なのでご注意ください。
DialogsプロパティやShowメソッドの詳細はこちらのMSDNがわかりやすいと思います。
◆注記
当然ながら、本サンプルのようにメールソフトの起動を伴う場合は「メールソフト」が設定されていることが前提になります。また、メールはWindowsで標準メーラーとして設定されているものが対象になりますので、ご注意ください。
3.まとめ
通常の流れでは「ブック保存」→「メールソフト起動」→「メール作成」→「宛先、件名など設定」→「添付ファイル指定」・・・となりますから、状況に応じて活用していくと些細なことのようで、結構手間が省けたりしますので知っておくと良いですね。
cc設定や自動的に送信まで行うとなると、本例では対応出来ないのですが他に手段があるようなので、機会があれば自身でトライしてみて上手く出来そうなら記事にしてみたいと思います。
以上、現在のブックを添付しメールを作成する方法についてでした!
今回の記事が何かの参考になれば幸いです。
Ryo