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

Excelでボタンがクリックされた場合にメールを送信するにはどうすればよいですか?

ExcelワークシートのボタンをクリックしてOutlookからメールを送信する必要があるとしたら、どうすればよいでしょうか。 この記事では、それを実現するためのVBAメソッドを詳しく紹介します。

ボタンがVBAコードでクリックされた場合にメールを送信する


ボタンがVBAコードでクリックされた場合にメールを送信する

Excelブックでコマンドボタンがクリックされた場合にOutlookから電子メールを送信するには、次のようにしてください。

1.をクリックして、ワークシートにコマンドボタンを挿入します ディベロッパー > インセット > コマンドボタン(ActiveXコントロール)。 スクリーンショットを参照してください:

2.挿入したコマンドボタンを右クリックして、 コードを表示 以下のスクリーンショットが示すように、右クリックメニューから。

3.オープニングで アプリケーション向け Microsoft Visual Basic ウィンドウの場合、コードウィンドウの元のコードを次のVBAスクリプトに置き換えてください。

VBAコード:Excelでボタンがクリックされた場合にメールを送信する

Private Sub CommandButton1_Click()
'Updated by Extendoffice 2017/9/14
    Dim xOutApp As Object
    Dim xOutMail As Object
    Dim xMailBody As String
    On Error Resume Next
    Set xOutApp = CreateObject("Outlook.Application")
    Set xOutMail = xOutApp.CreateItem(0)
    xMailBody = "Body content" & vbNewLine & vbNewLine & _
              "This is line 1" & vbNewLine & _
              "This is line 2"
                  On Error Resume Next
    With xOutMail
        .To = "Email Address"
        .CC = ""
        .BCC = ""
        .Subject = "Test email send by button clicking"
        .Body = xMailBody
        .Display   'or use .Send
    End With
    On Error GoTo 0
    Set xOutMail = Nothing
    Set xOutApp = Nothing
End Sub

免責事項:

1)。 必要に応じてメール本文を変更してください xMailBody コードの行。

2)。 を交換してください メールアドレス 受信者のメールアドレスが並んでいる .To = "メールアドレス".

3)。 必要に応じてCcおよびBcc受信者を指定します .CC =“” 及び .Bcc =“” セクション。

4)。 メールの件名を一列に変更する .Subject = "ボタンをクリックして送信するメールをテストする".

4。 プレス 他の + Q キーを同時に閉じて アプリケーション向け Microsoft Visual Basic 窓。

5.をクリックしてデザインモードをオフにします ディベロッパー > デザインモード。 スクリーンショットを参照してください:

これ以降、コマンドボタンをクリックするたびに、指定した受信者、件名、本文が記載されたメールが自動的に作成されます。 をクリックしてメールを送信してください 登録 ボタン。

注意:VBAコードは、電子メールプログラムとしてOutlookを使用している場合にのみ機能します。

Excelで作成されたメーリングリストのフィールドに基づいて、Outlookを介して簡単に電子メールを送信します。

世界 メールを送る の有用性 Kutools for Excel Excelで作成されたメーリングリストのフィールドに基づいて、Outlookを介して電子メールを送信するのに役立ちます。
ダウンロードして今すぐ試してみてください! (30-日フリートレイル)


関連記事:


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

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下部
コメントを並べ替える
コメント (73)
3.5の5を評価 · 1の評価
このコメントは、サイトのモデレーターによって最小化されました
こんにちは、ピボットテーブルデータからデータを送信したいと思っています。手伝ってもらえますか
このコメントは、サイトのモデレーターによって最小化されました
ボタンをクリックすると、上記のようにメールに添付され、ボタンも削除されるようにスクリプトを作成することは可能ですか? 電子メールで送信されているファイルのコピーにボタンがないようにしますか?
このコメントは、サイトのモデレーターによって最小化されました
「.Body=xMailBody」のすぐ下に、次を追加します
.Attachments.Add ActiveWorkbook.FullName
このコメントは、サイトのモデレーターによって最小化されました
こんにちはダニエ。

あなたが言ったようにその部分を追加しましたが、ワークブックが添付されたメールにはまだボタンが付いています。
このコメントは、サイトのモデレーターによって最小化されました
こんにちは、送信を押す必要がないように設定することは可能ですか?自動的にメールを送信しますか????
このコメントは、サイトのモデレーターによって最小化されました
こんにちは、
行.Displayを.Sendin上記のVBAコードに置き換えてください。
このコメントは、サイトのモデレーターによって最小化されました
XNUMXつの電子メールのみを生成し、複数の電子メールの下書きを開く代わりに内容を上書きし続けます。
このコメントは、サイトのモデレーターによって最小化されました
みなさん、こんにちは。ありがとうございました。この投稿は非常に役立ち、添付ファイルとして機能します。 これは私にとってはうまくいきますが、保存ボタンを押す必要があるシートには更新が保存されません。 添付ファイルには、現在Excelシートにあるものをすべて含めてください。

これは、Excelに組み込まれている電子メール機能を使用して実現できますが、特定の電子メールアドレスをハードコーディングする必要があるため、ボタンが必要でした。

要約すると、私は知りたいです:

ユーザーがExcelブックを開いて編集した後、ボタンが更新の添付ファイルを保持するかどうかを確認する方法があるかどうかを知りたいのですが。
このコメントは、サイトのモデレーターによって最小化されました
グッド·デイ、
コードが最適化されました。 コメントありがとうございます。

プライベートサブCommandButton1_Click()
'によって更新されました Extendoffice 2017 / 9 / 14
オブジェクトとしての薄暗いxOutApp
xOutMailをオブジェクトとして薄暗くする
文字列としての薄暗いxMailBody
エラーで次の再開
xOutApp = CreateObject( "Outlook.Application")を設定します
xOutMail = xOutApp.CreateItem(0)を設定します
ActiveWorkbook.Save
xMailBody = "ボディコンテンツ"&vbNewLine&vbNewLine&_
「これは1行目です」&vbNewLine&_
「これは2行目です」
エラーで次の再開
xOutMailを使用
.To = "メールアドレス"
.CC = ""
.BCC = ""
.Subject = "ボタンをクリックして送信するメールをテストする"
.Body = xMailBody
.Attachments.Add ActiveWorkbook.FullName
.Display'または.Sendを使用します
最後に
エラー時GoTo0
xOutMail=Nothingを設定します
xOutApp=Nothingを設定します
End Subの
このコメントは、サイトのモデレーターによって最小化されました
ボタンを押したときにアクティブなワークブックを電子メールに添付するにはどうすればよいですか?
このコメントは、サイトのモデレーターによって最小化されました
良い一日、
「.Body=xMailBody」のすぐ下に、次を追加します
.Attachments.Add ActiveWorkbook.FullName
このコメントは、サイトのモデレーターによって最小化されました
Teria como em vez de enviar a planilha、enviarasinformaçõesemimagem?
このコメントは、サイトのモデレーターによって最小化されました
このVBAコードを使用して、電子メールの本文内のセル情報を参照できますか? たとえば、セルの値を以下のコードにどのように参照しますか?

xMailBody = "ボディコンテンツ"&vbNewLine&vbNewLine&_
「これは1行目です」&vbNewLine&_
「これは2行目です」

また、(。TO = "email address")コードを使用します。 「メールアドレス」に、その隣の列のセルからメールアドレスを取得させるにはどうすればよいですか。


おかげで、
このコメントは、サイトのモデレーターによって最小化されました
同じワークシート内にXNUMX番目の電子メールボタンを追加することは可能ですか? 私がそれをやろうとすると、それは元の電子メールボタンからのコードに接続しています。 ありがとう。
このコメントは、サイトのモデレーターによって最小化されました
こんにちは、
ボタンごとに異なるコードを割り当てる必要があります。
このコメントは、サイトのモデレーターによって最小化されました
このVBAコードを使用して、電子メールの本文内のセル情報を参照できますか? たとえば、セルの値を以下のコードにどのように参照しますか?

xMailBody = "ボディコンテンツ"&vbNewLine&vbNewLine&_
「これは1行目です」&vbNewLine&_
「これは2行目です」

おかげで、
このコメントは、サイトのモデレーターによって最小化されました
こんにちはグレン、
次のコードを適用してください。 コメントありがとうございます。
xMailBody = [B5]
このコメントは、サイトのモデレーターによって最小化されました
電子メールで添付ファイルを送信する代わりに、ファイル(SharePointにある)へのハイパーリンクを送信することは可能ですか?
このコメントは、サイトのモデレーターによって最小化されました
こんにちはローリー、
それであなたを助けることはできません。 コメントありがとうございます。
このコメントは、サイトのモデレーターによって最小化されました
件名のセルの値を文字列で参照できますか? 以下のいくつかのバリエーション?

.Subject = "新しいイベント:"&Target.Address = "$ B $ 38"
このコメントは、サイトのモデレーターによって最小化されました
こんにちはアビ、
コードを.Subject="New Event:"&[B38]に変更してください。
コメントありがとうございます。
このコメントは、サイトのモデレーターによって最小化されました
こんにちは、
誰かが次の要件について私を助けることができますか?
XNUMXつのドロップダウンリストがあるExcelシートがあります。

1ドロップダウンリスト-部門のリスト

2ドロップダウンリスト-カテゴリ

リストから部門とカテゴリを選択したい場合(たとえば、部門で「販売」を選択し、カテゴリで「月次レポート」を選択した場合)

そのワークシートのPDFバージョンを営業チームに電子メールで送信する必要があります。電子メールの件名は月次レポートです。

部門リストから「プロダクション」を選択すると、メールはプロダクションの人々のグループに送信されます。

これについて私を助けていただければ幸いです

ラシケ
このコメントは、サイトのモデレーターによって最小化されました
こんにちはラシケ、
申し訳ありませんがそれであなたを助けることはできません。 私たちのフォーラムに質問を投稿することを歓迎します: https://www.extendoffice.com/forum.html Excelの専門家や他のExcelファンからより多くのExcelサポートを取得します。
このコメントは、サイトのモデレーターによって最小化されました
こんにちは、

Outlookから署名を自動的に追加するメールを取得するにはどうすればよいですか?
このコメントは、サイトのモデレーターによって最小化されました
こんにちはジョン、
以下のVBAコードは、問題の解決に役立ちます。 ご意見ありがとうございます。

プライベートサブCommandButton1_Click()
'によって更新されました Extendoffice 2019 / 6 / 26
オブジェクトとしての薄暗いxOutApp
xOutMailをオブジェクトとして薄暗くする
エラーで次の再開
xOutApp = CreateObject( "Outlook.Application")を設定します
xOutMail = xOutApp.CreateItem(0)を設定します
xOutMailを使用
.Display'または.Sendを使用します
.To = "メールアドレス"
.CC = ""
.BCC = ""
.Subject = "ボタンをクリックして送信するメールをテストする"
.HTMLBody = "これはExcelで送信するテストメールです"& "
"&.HTMLBody
'。送信
最後に
エラー時GoTo0
xOutMail=Nothingを設定します
xOutApp=Nothingを設定します
End Subの
このコメントは、サイトのモデレーターによって最小化されました
メールを送信するためにボタンを押すとき、あなたはExcelユーザーである必要がありますか? または、電子メールを受信する人だけがOutlookユーザーである必要がありますか?
このコメントは、サイトのモデレーターによって最小化されました
良い一日、
Excelのボタンをクリックした後、電子メールをOutlook経由で送信する必要があるため、Outlookを機能させるには、コンピューターにOutlookをインストールする必要があります。
このコメントは、サイトのモデレーターによって最小化されました
メールでExcelワークシートを送信したいのですが、送信されません。 ドキュメントをメールで送信するコードをどのように記述しますか
このコメントは、サイトのモデレーターによって最小化されました
こんにちはマーカス、
以下のVBAコードは、問題の解決に役立ちます。

サブSendWorkSheet()
'更新20190626
文字列としての薄暗いxFile
薄暗いxFormatと同じくらい
ワークブックとしての薄暗いWb
ワークブックとしての薄暗いWb2
文字列としての薄暗いFilePath
文字列としての薄暗いファイル名
OutlookAppをオブジェクトとして薄暗くする
OutlookMailをオブジェクトとして薄暗くする
エラーで次の再開
Application.ScreenUpdating = False
Wb=Application.ActiveWorkbookに設定します
ActiveSheet.Copy
Wb2=Application.ActiveWorkbookに設定します
CaseWb.FileFormatを選択します
ケースxlOpenXMLWorkbook:
xFile = ".xlsx"
xFormat = xlOpenXMLWorkbook
ケースxlOpenXMLWorkbookMacroEnabled:
Wb2.HasVBProjectの場合
xFile = ".xlsm"
xFormat = xlOpenXMLWorkbookMacroEnabled

xFile = ".xlsx"
xFormat = xlOpenXMLWorkbook
終了する場合
ケースExcel8:
xFile = ".xls"
xFormat = Excel8
ケースxlExcel12:
xFile = ".xlsb"
xFormat = xlExcel12
選択して終了
FilePath = Environ $( "temp")& "\"
FileName = Wb.Name&Format(Now、 "dd-mmm-yy h-mm-ss")
OutlookApp = CreateObject( "Outlook.Application")を設定します
OutlookMail = OutlookApp.CreateItem(0)に設定します
Wb2.SaveAs FilePath&FileName&xFile、FileFormat:= xFormat
OutlookMailを使用
.To = "skyyang @extendoffice.com」
.CC = ""
.BCC = ""
.Subject = "kte機能"
.Body = "このドキュメントを確認してお読みください。"
.Attachments.Add Wb2.FullName
。表示
'。送信
最後に
Wb2.閉じる
FilePath&FileName&xFileを強制終了します
OutlookMail=Nothingを設定します
OutlookApp=Nothingを設定します
Application.ScreenUpdating = True
End Subの
このコメントは、サイトのモデレーターによって最小化されました
ボタンを押したときにアクティブなワークシートを電子メールに添付するにはどうすればよいですか?
このコメントは、サイトのモデレーターによって最小化されました
こんにちはグラント、
ボタンを右クリックして[コードの表示]を選択し、PrivateSubとEndSubの行の間に以下のコードをコピーしてください。 私が助けることができることを願っています。 ご意見ありがとうございます。

文字列としての薄暗いxFile
薄暗いxFormatと同じくらい
ワークブックとしての薄暗いWb
ワークブックとしての薄暗いWb2
文字列としての薄暗いFilePath
文字列としての薄暗いファイル名
OutlookAppをオブジェクトとして薄暗くする
OutlookMailをオブジェクトとして薄暗くする
エラーで次の再開
Application.ScreenUpdating = False
Wb=Application.ActiveWorkbookに設定します
ActiveSheet.Copy
Wb2=Application.ActiveWorkbookに設定します
CaseWb.FileFormatを選択します
ケースxlOpenXMLWorkbook:
xFile = ".xlsx"
xFormat = xlOpenXMLWorkbook
ケースxlOpenXMLWorkbookMacroEnabled:
Wb2.HasVBProjectの場合
xFile = ".xlsm"
xFormat = xlOpenXMLWorkbookMacroEnabled

xFile = ".xlsx"
xFormat = xlOpenXMLWorkbook
終了する場合
ケースExcel8:
xFile = ".xls"
xFormat = Excel8
ケースxlExcel12:
xFile = ".xlsb"
xFormat = xlExcel12
選択して終了
FilePath = Environ $( "temp")& "\"
FileName = Wb.Name&Format(Now、 "dd-mmm-yy h-mm-ss")
OutlookApp = CreateObject( "Outlook.Application")を設定します
OutlookMail = OutlookApp.CreateItem(0)に設定します
Wb2.SaveAs FilePath&FileName&xFile、FileFormat:= xFormat
OutlookMailを使用
.To = "skyyang @extendoffice.com」
.CC = ""
.BCC = ""
.Subject = "kte機能"
.Body = "このドキュメントを確認してお読みください。"
.Attachments.Add Wb2.FullName
。表示
'。送信
最後に
Wb2.閉じる
FilePath&FileName&xFileを強制終了します
OutlookMail=Nothingを設定します
OutlookApp=Nothingを設定します
Application.ScreenUpdating = True
このコメントは、サイトのモデレーターによって最小化されました
こんにちは、

メールに添付するファイル名を現在の日付に変更する方法はありますか?
このコメントは、サイトのモデレーターによって最小化されました
こんにちは、

シートに取り組んでいますが、仕上げられません。 私はあなたが私を助けることができることを願っています:)

ファイル自体はxltm(テンプレート)である必要があり、メールに自分自身のシートを添付する必要があります。

そして自動署名、それなら私はとても幸せだろう。

よろしくお願いします/Dr。 ナン
このコメントは、サイトのモデレーターによって最小化されました
こんにちは、私は80の個別のバーアカウントでスプレッドシートを実行し、このページでVBAコードを使用して多くの成功を収めました。 ただし、メールの本文では、クライアントが履歴を持つことができるように、送信時にアカウントの特定の範囲のセルをコピーして貼り付けたいと思います。 このためのVBAコードを手伝ってもらえますか?
このコメントは、サイトのモデレーターによって最小化されました
やあ! どうもありがとうございました。 それは素晴らしい助けになりました。

完全なワークブックの代わりにボタンを押すことで、アクティブなワークシートを送信することはできますか?

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

フォローする

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