![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
No.2ベストアンサー
- 回答日時:
>「ファイル」、「送信」、「あて先」で現在のシート記載事項をメール本文
> として送信すると同じように...
参考URL: http://oshiete1.goo.ne.jp/kotaeru.php3?q=1546306
参考URLのスレによると、この機能が使えるかどうかは環境依存するようです。
ご自分の PC でだけ使用する前提ですか?
消極的な逃げの手段になりますが、こんな感じでは?.....
Sub Sample()
If Application.MailSystem <> xlMAPI Then
MsgBox "この機能を使用するためには MAPI対応のメーラーが必要です。", vbCritical
Else
' Copy 完了後 Activesheet は新規ブックの方に変わります
ActiveSheet.Copy
' ここで不要なものを削除するなど必要な処理を行う
With ActiveSheet
' コントロールやシェープ等の削除
.DrawingObjects.Delete
' 入力規則の削除
.Cells.Validation.Delete
' A 列の削除
.Columns(1).Delete
End With
' 念のため
ActiveWindow.Activate
' 逃げの一手... [メール宛先] ショートカットキー送信
SendKeys "%FDM", True
End If
End Sub
調べた限り、VBA からこの機能を呼び出すことはできないみたいです。
いつもお世話になります。
ありがとうございます、やりたいことが実現できました。
ただ、メール送信後にActiveSheet.Copyで出来たあたらしいbookが残ってしまうのですが、これを自動削除する方法はないでしょうか?手動で保存せずに終了すればいいだけのことなのですが、せっかくここまでできたら欲がでてしまいます。(^^;;
No.5
- 回答日時:
遅くなりました。
> 最初に教えていただいた、ブック添付の方は「件名」を指定でき
> ましたが、こっちのやりかたでは多分これも無理ですね?
PostMessage でなんとか件名を送信する方法がないか、あれこれ
試してみましたが、件名を入力するコントロールがどうしても捉まえ
られず断念しました... (´・ω・`)
Excel に準備されている「メールの宛先」機能を使う以上、無理そう
ですね。
もともと、この機能自体が環境依存するので、汎用性がないです。
OUTLOOK やメール送信の外部コンポーネントを利用する方法を考えて
みて下さい。
Excel から Outlook を使って HTMLメールを送信するサンプルなら
WEB 検索でヒットします。
ありがとうございました。
おなじエクセルもOutLookも同じOfficeのソフトなので可能かなあと思いましたが、VBAの方法は断念いたします。
No.4
- 回答日時:
あ、、#3 の方法じゃダメですね。
。それと別に新規ブックでなくても、ThisWorkbook 内に複製しても良かったかも?
ただ、この一時的な作業シート(ブック)はユーザーの送信等の操作があって
から削除を行う必要があるわけですから、「選択範囲を送信」ボタンのクリック
を検知しなければなりません。
VBA では難しいですね。。
Excel のツールバーに表示されるメール送信機能を使う以上は、恐らく、不可能
だと思います。
VBAでは無理ということですね。
わかりました、あきらめます。
あと、最初に教えていただいた、ブック添付の方は「件名」を指定できましたが、こっちのやりかたでは多分これも無理ですね?
No.3
- 回答日時:
> これを自動削除する方法はないでしょうか?
ん?
merlionXX さんならできると思います。こんな感じのコードを付け足す
だけですよ。
Application.DisplayAlerts = False
ActiveWorkbook.Close
Application.DisplayAlerts = True
ThisWorkbook.Activate
っていうか、、苦し紛れの SendKeys で逃げて済みません。m(__;)m
No.1
- 回答日時:
こんにちは。
KenKen_SP です。Excel の SendMail メソッドを使って?
同一ブックでやろうとすると難しいかもしれません。
ドロップダウンが入力規則なのかコントロールか分かりませんが、
1. シートを複製
2. 複製されたシート上で不要なモノを削除
3. 添付できるように保存
3. SendMail メソッドで送信
4. 3.で保存されたものが不要なら削除
といった流れでできると思います。
Option Explicit
Sub Sample()
Dim strDir As String
Dim strSubject As String
Dim strTo As String
Dim strFilename As String
strSubject = "送信テスト"
strTo = "宛先メールアドレス"
' Activesheet を複製 --> 新規ブックに複製されます
ActiveSheet.Copy
' 新規ブックの複製されたシートが現在アクティブになってます
' --> ThisWorkbook ではない
' ここで不要なものを削除するなど必要な処理を行う
With ActiveSheet
' コントロールやシェープ等の削除
.DrawingObjects.Delete
' 入力規則の削除
.Cells.Validation.Delete
' A 列の削除
.Columns(1).Delete
End With
' 適切なファイル名を生成
strFilename = ThisWorkbook.Path & "\" _
& Format$(Now(), "yymmddhhmmss_") & ThisWorkbook.Name
With ActiveWorkbook
' メール送信できるように保存
.SaveAs strFilename
' メール送信
.SendMail Recipients:=strTo, Subject:=strSubject
End With
' 必要なら一時ファイルを削除(アラートは適当に処理)
ActiveWorkbook.Close
Kill (strFilename)
End Sub
Outlook を使う場合も、その他のメール送信コンポーネントを使用する
場合でも、基本的な流れは一緒です。
さそくありがとうございます。
SendMail メソッドというのですか、はじめて知りました。(メール送信はマクロの記録ではとれないので)
それで、ご教示のではエクセルのブックが添付ファイルになっていますが、実現したいのは、エクセルのワークシートから、メニューの、「ファイル」、「送信」、「あて先」で現在のシート記載事項をメール本文として送信するときと同じように、画面上部に送信先入力欄がでて、メール本文にシートの文言が転記されるようにしたいのです。
無理なのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
- Excel(エクセル) 【エクセル】文中に別シートのセルの内容を自動入力したい 6 2022/11/17 11:30
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Excel(エクセル) 【エクセル」 特定のセルで条件抽出した列を、別シートに上から詰めて表示したい。 8 2022/04/08 16:00
- Visual Basic(VBA) VBAにてメール作成した際、一部指定箇所のみ赤文字にしたいです。 下記の内容ですと作成されたメール本 1 2022/04/27 13:31
- その他(メールソフト・メールサービス) サンダーバードでメールが受信されない 10 2022/03/24 17:00
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2022/03/28 14:52
- Excel(エクセル) 条件に合った数値の合計を表示させたい関数と条件指定の方法 3 2023/05/13 16:07
- Excel(エクセル) エクセルで”入力シート”の文字書式の変更を”出力シート”で同じ文字書式で印刷したいです。VBA希望 4 2023/04/24 11:07
- Outlook(アウトルック) 未読ならば受信トレイから削除する 2 2023/02/12 19:21
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
メールの送信場所って分かりま...
-
shuriken Pro4
-
iCloudのMail dropについてです...
-
匿名メールの発信源を調べるに...
-
VBAでメールにアクティブブック...
-
送信エラー:Undeliverable Mai...
-
失礼な文とは分からず、先生に...
-
お祝い金を徴収するメールの書き方
-
土日に大学教授にメールを送る...
-
株式会社NSCと言う所から、現金...
-
詐欺メールでしょうか?
-
URLをコピーしてメールにリ...
-
ソースネクストという会社の広...
-
一度聞いたかも知れないのをっ...
-
windowsメールとOutlookメール...
-
Winmail.dat ファイルが開けない
-
受信メールの添付ファイル忘れ...
-
文末にAll the best! 返信しな...
-
フリートークカテの方が 教えて...
-
匿名でメールを送りたい。Gmail...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
メールの送信場所って分かりま...
-
送信エラー:Undeliverable Mai...
-
7zipで圧縮して電子メール送信...
-
iCloudのMail dropについてです...
-
outlookの指定日時以降に配信に...
-
送信済みのメールを再送するには?
-
OCNメール 一斉送信
-
匿名メールの発信源を調べるに...
-
mail distributorの 使い方
-
AccessよりOutlook以外でメール...
-
ダウンロードが遅くなり、期限...
-
shuriken Pro4
-
VBAでメールにアクティブブック...
-
Mailで1通しか送信していないの...
-
時空を超えてメールが来た~?!
-
メッセージを送信できません(M...
-
Mac(OS10/G4) 送信したメール...
-
メールの送信予約。
-
emobilメールで一斉送信したら
-
Outlook 2002のメール送信遅延...
おすすめ情報