• 締切済み

EXCELVBA メール送信について

EXCELVBAで加工したデータをメールに添付して送信するツールを作成したいのですが、送信後保存ファイルを削除したい場合の方法分からす困っています。自身(?)を削除する事になるのでうまく動作しません。何方か良い方法があったらご指導を頂けないでしょうか? 宜しくお願いします。 Sub MailSend() Dim app As Object Dim objml As Object Dim moji As String Set app = CreateObject("Outlook.Application") Set objml = app.CreateItem(0) moji = "ご査収ください" objml.To = "xxxx@xxx.xxx.or.jp" '宛先 objml.Subject = "TEST" '件名 objml.Body = moji '本文の代入 objml.Attachments.Add "D:\My Documents\TEST.xls" objml.Send '送信   kill(TEST.xls) →※この部分がどのように処理して良いか分かりません End Sub

みんなの回答

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.3

コードの書かれた開いてるファイル自身を消滅させるマクロの例です。 ご参考まで。 Sub Kill_Me() Dim i As Integer MsgBox "今から自動消滅します。" With ThisWorkbook .Save For i = 1 To Application.RecentFiles.Count If Application.RecentFiles(i).Path = .FullName Then Application.RecentFiles(i).Delete Exit For End If Next .ChangeFileAccess Mode:=xlReadOnly Kill .FullName .Close SaveChanges:=False End With End Sub

mika0090
質問者

お礼

ご指導ありがとうございました。メール送信後教えて頂いたファイル自身を削除するコードを追加して上手く動作しました。こんなこと出来るんですね。。勉強になりました。

  • web2525
  • ベストアンサー率42% (1219/2850)
回答No.2

開いてるファイルの削除自体不可能です、一旦ファイルを閉じる必要がありますので、自分自身の削除はそのブック内のマクロでは行えません。

  • xfiles
  • ベストアンサー率23% (164/693)
回答No.1

別のプロージャへ飛ばして、そこから削除すればどうでしょう。 「自身(?)を削除する事になるのでうまく動作しません。」なのだから、単純に外部のプロージャで削除出来ないかと思ったわけです。 なお、今検証できる環境にないのでこんな回答しか出来ません。