Note: The other languages of the website are Google-translated. Back to English

ExcelからOutlookを介してセルの範囲を送信/電子メールで送信するにはどうすればよいですか?

ワークシートでレポートを完成させた後、特定の受信者にいくつかの重要なデータを含むこのワークシートのセルの範囲に送信する必要があるという問題に苦しんだことがありますか。 Outlookを開かずにExcelからこの範囲を電子メールで送信する簡単な方法はありますか?

VBAコードを使用してExcelから添付ファイルとしてセルの範囲を送信します

VBAコードを使用してExcelからセルの範囲を本文として送信します


矢印青い右バブルVBAコードを使用してExcelから添付ファイルとしてセルの範囲を送信します

次のVBAコードは、選択した範囲をExcelの添付ファイルとして送信するのに役立ちます。 このようにしてください:

1。 ブックを開いて、 Alt + F11 キーを押して Microsoft Visual Basic forApplicationsウィンドウ.

2に設定します。 OK をクリックします。 インセット > モジュール、次のコードをに貼り付けます モジュールウィンドウ.

VBAコード:Excelから添付ファイルとしてセルの範囲を送信します

Sub SendRange()
'Update 20131209
Dim xFile As String
Dim xFormat As Long
Dim Wb As Workbook
Dim Wb2 As Workbook
Dim Ws As Worksheet
Dim FilePath As String
Dim FileName As String
Dim OutlookApp As Object
Dim OutlookMail As Object
Dim WorkRng As Range
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set Wb = Application.ActiveWorkbook
Wb.Worksheets.Add
Set Ws = Application.ActiveSheet
WorkRng.Copy Ws.Cells(1, 1)
Ws.Copy
Set Wb2 = Application.ActiveWorkbook
Select Case Wb.FileFormat
Case xlOpenXMLWorkbook:
    xFile = ".xlsx"
    xFormat = xlOpenXMLWorkbook
Case xlOpenXMLWorkbookMacroEnabled:
    If Wb2.HasVBProject Then
        xFile = ".xlsm"
        xFormat = xlOpenXMLWorkbookMacroEnabled
    Else
        xFile = ".xlsx"
        xFormat = xlOpenXMLWorkbook
    End If
Case Excel8:
    xFile = ".xls"
    xFormat = Excel8
Case xlExcel12:
    xFile = ".xlsb"
    xFormat = xlExcel12
End Select
FilePath = Environ$("temp") & "\"
FileName = Wb.Name & Format(Now, "dd-mmm-yy h-mm-ss")
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0)
Wb2.SaveAs FilePath & FileName & xFile, FileFormat:=xFormat
With OutlookMail
    .To = "skyyang@extendoffice.com"
    .CC = ""
    .BCC = ""
    .Subject = "information of kte"
    .Body = "hello, please check and read this document. "
    .Attachments.Add Wb2.FullName
    .Send
End With
Wb2.Close
Kill FilePath & FileName & xFile
Set OutlookMail = Nothing
Set OutlookApp = Nothing
Ws.Delete
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub

注意:上記のコードでは、次の情報を必要に応じて変更できます。

  • .To = "skyyang @extendoffice.com」
  • .CC = ""
  • .BCC = ""
  • .Subject = "kteの情報"
  • .Body = "こんにちは、このドキュメントを確認してお読みください。"

3。 次に、をクリックします F5 このコードを実行するためのキーを押すと、送信する範囲を選択するように促すプロンプトボックスが表示されます。 スクリーンショットを参照してください:

ドキュメント送信範囲1

4。 次に、をクリックします OK、プロンプトボックスが表示されたら、プログレスバーが終了したら、をクリックします。 許可する、そして特定の範囲のセルが添付ファイルとして受信者に送信されました。

ドキュメント送信範囲2


矢印青い右バブルVBAコードを使用してExcelからセルの範囲を本文として送信します

Excelからメッセージ本文の一部として特定の範囲を送信する場合は、次のVBAコードを適用して解決することもできます。

Kutools for Excel, 以上で 120 便利な機能で、仕事が楽になります。 

1。 ワークシートをアクティブにして、 Alt + F11 キーを押して Microsoft Visual Basic forApplicationsウィンドウ.

2に設定します。 OK をクリックします。 インセット > モジュール、次のコードをに貼り付けます モジュールウィンドウ.

VBAコード:セルの範囲をExcelから本文として送信します

Sub EmailRange()
'Update 20131209
Dim WorkRng As Range
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
Application.ScreenUpdating = False
WorkRng.Select
ActiveWorkbook.EnvelopeVisible = True
With ActiveSheet.MailEnvelope
    .Introduction = "Please read this email."
    .Item.To = "skyyang@extendoffice.com"
    .Item.Subject = "information of kte"
    .Item.Send
End With
Application.ScreenUpdating = True
End Sub

注意: 上記のコードでは、必要に応じて次の情報を変更できます。

  • .Introduction = "このメールをお読みください。"
  • .Item.To = "skyyang @extendoffice.com」
  • .Item.Subject = "kteの情報"

3。 次に、をクリックします F5 このコードを実行するためのキーを押すと、送信する範囲を選択するように促すプロンプトボックスが表示されます。

ドキュメント送信範囲1

4. 次に、をクリックします。 OK、プロンプトボックスが表示されたら、プログレスバーが終了したら、をクリックします。 許可する、そして特定の範囲のセルがメッセージ本文として受信者に送信されました。

ドキュメント送信範囲2

注意:

1.これらのコードは、メールプログラムとしてOutlookを使用している場合にのみ使用できます。

2.現在のワークシートを送信した後、Outlookに移動して、電子メールが正常に送信されたかどうかを確認できます。


関連記事:

ExcelからOutlook経由でのみワークシートを送信するにはどうすればよいですか?

ExcelからOutlookを介して現在のブックを送信するにはどうすればよいですか?


最高のオフィス生産性ツール

Kutools for Excelはほとんどの問題を解決し、生産性を80%向上させます

  • 再利用: すばやく挿入 複雑な数式、チャート および以前に使用したものすべて。 セルを暗号化する パスワード付き。 メーリングリストを作成する そしてメールを送る...
  • スーパーフォーミュラバー (複数行のテキストと数式を簡単に編集できます); 読書レイアウト (多数のセルを簡単に読み取って編集する); フィルター範囲に貼り付け...
  • セル/行/列をマージする データを失うことなく; 分割セルコンテンツ; 重複する行/列を組み合わせる...重複セルを防止します。 範囲を比較する...
  • [複製]または[一意]を選択します 行; 空白行を選択 (すべてのセルは空です); スーパーファインドとファジーファインド 多くのワークブックで; ランダム選択...
  • 正確なコピー 数式参照を変更せずに複数のセル。 参照の自動作成 複数のシートに; 箇条書きを挿入、チェックボックスなど...
  • テキストを抽出、テキストの追加、位置による削除、 スペースを削除する; ページング小計の作成と印刷。 セルの内容とコメントを変換する...
  • スーパーフィルター (フィルタースキームを保存して他のシートに適用します); 高度な並べ替え 月/週/日、頻度など。 特殊フィルター 太字、斜体...
  • ワークブックとワークシートを組み合わせる; キー列に基づいてテーブルをマージします。 データを複数のシートに分割; xls、xlsx、PDFをバッチ変換...
  • 300 以上の強力な機能. Office / Excel 2007-2021 および 365 をサポートします。すべての言語をサポートします。 企業や組織に簡単に導入できます。 フル機能の 30 日間無料トライアル。 60日間の返金保証。
kteタブ201905

Officeタブは、タブ付きのインターフェイスをOfficeにもたらし、作​​業をはるかに簡単にします

  • Word、Excel、PowerPointでタブ付きの編集と読み取りを有効にする、パブリッシャー、アクセス、Visioおよびプロジェクト。
  • 新しいウィンドウではなく、同じウィンドウの新しいタブで複数のドキュメントを開いて作成します。
  • 生産性を 50% 向上させ、毎日何百回もマウス クリックを減らすことができます!
officetab下部
コメントを並べ替える
コメント (26)
まだ評価はありません。 最初に評価してください!
このコメントは、サイトのモデレーターによって最小化されました
こんにちは、メールに必要なセルを選択するマルコを使用しています。 これを別のマクロと組み合わせて、「新しいメール」を開くようにしました。私の問題は、XNUMXつのセルに大量の情報を入れると、そのセルのすべての情報を表示するのではなく、アイデアを表示するだけで済むということです。 ?? この歓声を手伝ってくれてありがとう
このコメントは、サイトのモデレーターによって最小化されました
みなさん、こんにちは
シート1の範囲を選択して、A列のシート2に書き込まれた多数の電子メールアドレスに2つずつ電子メールで送信するプロジェクトがあります。列Bが特定の件名で空で、送信後にシートXNUMXに書き込む場合は列bが送信されます。
そして、サーバーの状態として次のメールを送信するために10秒待つ
誰か助けてくれませんか?   
このコメントは、サイトのモデレーターによって最小化されました
こんにちは、XNUMX番目のプログラムのこのメールに署名とXNUMX番目の紹介行を追加する方法を教えてください。 前もって感謝します。
このコメントは、サイトのモデレーターによって最小化されました
素敵で便利な、良い仕事!!!
このコメントは、サイトのモデレーターによって最小化されました
非常に便利。 ありがとうございました 。 同じシートにメールアドレスのリストがあります。 XNUMXつのメールアドレスをクリックすると、選択した範囲のセルがこのメールの添付ファイルとして送信されます。 これについて私を助けてくれませんか?
このコメントは、サイトのモデレーターによって最小化されました
こんにちは、非常にうまく説明されています。 新しいワークブックを送信する代わりに、選択した範囲をコピーしてメール本文に貼り付けて送信することしかできません。 選択した範囲を画像として送信したくありません。 メール本文にテーブルビューのように送信したい。 できますか?
このコメントは、サイトのモデレーターによって最小化されました
ありがとう、これは非常に便利ですが、送信する前にメール本文に説明を追加する必要がある場合はどうなりますか。 コードを提案してください。
このコメントは、サイトのモデレーターによって最小化されました
こんにちは、
すべてが良さそうに見えますが、選択した範囲の境界線が表示されていません。提案していただけますか。
このコメントは、サイトのモデレーターによって最小化されました
どうもありがとうございました私はこの解決策をとても長い間見つけています。
このコメントは、サイトのモデレーターによって最小化されました
よくできました。 これが自動的に送信されるのを確認したほうがよいでしょう。 送信を再開する前にエラーが表示されないようにするにはどうすればよいですか?
このコメントは、サイトのモデレーターによって最小化されました
送信するメールアドレスをいくつでも入力できますか?
このコメントは、サイトのモデレーターによって最小化されました
こんにちは、キャリー、上記のすべてのVBAは、;を使用して送信する多くの電子メールアドレス(To、BCC、CC)を追加できます。 セパレーターとして。 たとえば、.To = "skyyang @extendoffice.com; test1 @extendoffice.com; test2 @extendoffice.com」
このコメントは、サイトのモデレーターによって最小化されました
ichemöchtedaskopiertenichtals Datei in eine E-Maileinfügen、sondern per copy andpasteindieE-Maileinfügen。 Wie geht das in dem VBA-Code?
このコメントは、サイトのモデレーターによって最小化されました
こんにちは私はスタッフに記入してもらいたいテーブルを設定し、次にコマンドボタンを設定して自動的にメールを生成しますが、テーブルのデータをメール本文に入れたいと思います。 そのためのコードはありますか? 
ありがとうございました 
このコメントは、サイトのモデレーターによって最小化されました
みなさん、こんにちは
シート1の範囲を選択して、A列のシート2に書き込まれた多数の電子メールアドレスに2つずつ電子メールで送信するプロジェクトがあります。列Bが特定の件名で空で、送信後にシートXNUMXに書き込む場合は列bが送信されます。
そして、サーバーの状態として次のメールを送信するために10秒待つ
誰か助けてくれませんか?   
このコメントは、サイトのモデレーターによって最小化されました
みなさん、こんにちは
シート1の範囲を選択して、A列のシート2に書き込まれた多数の電子メールアドレスに2つずつ電子メールで送信するプロジェクトがあります。列Bが特定の件名で空で、送信後にシートXNUMXに書き込む場合は列bが送信されます。
そして、サーバーの状態として次のメールを送信するために10秒待つ
誰か助けてくれませんか?   
このコメントは、サイトのモデレーターによって最小化されました
こんにちは、hriad、 "列Bが特定の件名で空で、送信後にシート2に書き込みを行う場合列bが送信されます
そして、サーバーの状態として次のメールを送信するのに10秒待ちます」これはわかりません。要件についてもう一度教えてください。
このコメントは、サイトのモデレーターによって最小化されました
こんにちはサニー
まず第一に、あなたの助けに感謝します、サーバーが同じ秒に多くの電子メールを送信しないという条件を設定したので、私は最初の電子メールと次の電子メールを送信してから10秒待ちたいです。
このコメントは、サイトのモデレーターによって最小化されました
こんにちは、hriad、以下のコードを試してください。実行後、送信する範囲を選択するためのダイアログが表示され、シート2の列Aのアドレスと列Bの件名で送信されます。10秒ごと、XNUMXつのアドレスに送信します。 必要に応じて、「このメールを読んでください」というコードを変更できます。
Sub SendEmailRange()

'UpdateByExtendoffice20220414

範囲として薄暗いWorkRng

Dim xSU、EV As Boolean

ワークシートとしての薄暗いxWSh

Dim xCount を整数として

Dim xI As Integer

エラーで次の再開

xTitleId = "KutoolsforExcel"

'本文として送信するために使用された範囲を選択します

WorkRng = Application.InputBox( "Range"、xTitleId、Application.Selection.Address、、、、、、 8)を設定します

WorkRngが何もない場合は、Subを終了します
WorkRng.Activate
WorkRng.Select

Set xWSh = ActiveWorkbook.Worksheets( "Sheet2")'アドレスと件名を含むシート

xCount = xWSh.UsedRange.Rows.Count

xSU = Application.ScreenUpdating

EV = ActiveWorkbook.EnvelopeVisible

Application.ScreenUpdating = False


xI=1からxCountの場合

If(xWSh.Range( "A"&xI)= "")Then
終了
終了する場合
ActiveWorkbook.EnvelopeVisible = True
ActiveSheet.MailEnvelopeを使用
.Introduction = "このメールをお読みください。"

.Item.To = xWSh.Range( "A"&xI)

.Item.Subject = xWSh.Range( "B"&xI)

.Item.Send
最後に
If(xI = xCount)Then

終了

終了する場合

Application.Wait Now + TimeValue( "0:00:10")

次へ


Application.ScreenUpdating = xSU

ActiveWorkbook.EnvelopeVisible = EV

End Subの

このコメントは、サイトのモデレーターによって最小化されました
こんにちはサニー
多くの多くのあなたの努力に感謝します....どうもありがとう
このコメントは、サイトのモデレーターによって最小化されました
範囲を固定できますか? マクロではそれ自体
このコメントは、サイトのモデレーターによって最小化されました
こんにちは、

Mam plik z 6 arkuszami. Każdy z arkuszy 2-6 musi zostać wysłany do innej grupy odbiorców jako załącznik excela. Czy da się to podpiąć pod 5 przycisków?
このコメントは、サイトのモデレーターによって最小化されました
こんにちは、パウ​​ェル
問題を解決するには、以下の記事が役立つ場合があります。確認してください。

https://www.extendoffice.com/documents/excel/7178-send-each-sheet-to-different-email.html

ありがとうございました!
このコメントは、サイトのモデレーターによって最小化されました
これありがとう! 休暇から戻ったので、すぐにテストします。 もうXNUMXつ質問があります。 コードが編集モードで完全に機能する場合や、キーボードから ctrl + 選択したボタンで実行した場合でも、Activex ボタンを使用して vba コードを実行すると問題が発生します (アクションはまったくありません)。 私はVBAの旅を始めたばかりで、何も持っていません
私が間違っていることを考えてください:/
このコメントは、サイトのモデレーターによって最小化されました
こんにちは、パウ​​ェル
コードをコピーして アプリケーション向け Microsoft Visual Basic ウィンドウをクリックし、 ラン 以下のスクリーンショットのように、ツールバーからボタンをクリックします: (注意:コードでは、 S1 電子メールの送信先の電子メール アドレスを含むセルです。 必要に応じて変更してください。)

https://www.extendoffice.com/images/stories/comments/comment-skyyang/doc-send-emails.png

もう一度お試しください。
このコメントは、サイトのモデレーターによって最小化されました
こんにちは、

私は上記のようにすべてを実行しました。結果は次のとおりです。すべてがボタンとは別に完全に機能します:)現時点ではこれについてあまり気にしません:)

ありがとうございます! トピックは閉じました:)
ここにはまだコメントが投稿されていません
あなたのコメントを残す
ゲストとして投稿
×
この投稿を評価:
0   文字
推奨される場所

フォローする

著作権©の2009 - WWW。extendoffice.com。 | | 全著作権所有。 搭載 ExtendOffice。 | サイトマップ
MicrosoftおよびOfficeのロゴは、米国MicrosoftCorporationの米国およびその他の国における商標または登録商標です。
SectigoSSLで保護