郵便
 Computer >> コンピューター >  >> ソフトウェア >> 郵便

VBAスクリプトを使用してExcelスプレッドシートから電子メールを送信する方法

Microsoft Excelから電子メールを送信するには、いくつかの簡単なスクリプトのみが必要です。この機能をスプレッドシートに追加すると、Excelで達成できることを大幅に強化できます。

プログラミングの知識を必要とせずに、VBAスクリプトと同じことを実行できる、多くの優れたExcelマクロについて説明しました。ただし、すべてのPC情報を含むスプレッドシートレポートを作成するなど、VBAでしか実行できない高度な機能が多数あります。

このチュートリアルをビデオとして見たいですか?カバーしました!

なぜExcelからメールを送信するのですか?

MicrosoftExcel内からメールを送信する理由はたくさんあります。

ドキュメントやスプレッドシートを毎週更新するスタッフがいて、それらの更新が完了したときに電子メール通知を受け取りたい場合があります。または、連絡先のスプレッドシートがあり、一度に1通のメールをすべての連絡先に送信したい場合があります。

Excelからの電子メールブロードキャストのスクリプト作成が複雑になると思われるかもしれません。そうではありません。

この記事の手法では、ExcelVBAで長い間利用されてきた機能であるコラボレーションデータオブジェクトを利用します。 (CDO)。

VBAスクリプトを使用してExcelスプレッドシートから電子メールを送信する方法

CDOは、OSの非常に初期の世代からWindowsで使用されているメッセージングコンポーネントです。以前はCDONTSと呼ばれていましたが、Windows 2000とXPの登場により、「CDOforWindows2000」に置き換えられました。このコンポーネントは、Microsoft WordまたはExcel内のVBAインストールにすでに含まれており、すぐに使用できます。

このコンポーネントを使用すると、VBAを使用してWindows製品内から電子メールを非常に簡単に送信できます。この例では、ExcelのCDOコンポーネントを使用して、特定のExcelセルからの結果を配信する電子メールを送信します。

ステップ1:VBAマクロを作成する

最初のステップは、[Excel開発者]タブに移動することです。

[開発者]タブ内で、[挿入]をクリックします [コントロール]ボックスで、コマンドボタンを選択します。

VBAスクリプトを使用してExcelスプレッドシートから電子メールを送信する方法

シートに描画し、マクロをクリックして新しいマクロを作成します 開発者リボンで。

VBAスクリプトを使用してExcelスプレッドシートから電子メールを送信する方法

作成をクリックすると ボタンをクリックすると、VBAエディタが開きます。

ツールに移動して、CDOライブラリへの参照を追加します>参照 エディターで。

VBAスクリプトを使用してExcelスプレッドシートから電子メールを送信する方法

Microsoft CDO forWindows2000ライブラリが見つかるまでリストを下にスクロールします 。チェックボックスをオンにして、 OKをクリックします 。

VBAスクリプトを使用してExcelスプレッドシートから電子メールを送信する方法

OKをクリックすると 、スクリプトを貼り付ける関数の名前をメモします。後で必要になります。

ステップ2:CDOの「From」フィールドと「To」フィールドを設定します

これを行うには、最初にメールオブジェクトを作成し、メールの送信に必要なすべてのフィールドを設定する必要があります。

多くのフィールドはオプションですが、 From および宛先 フィールドは必須です。

Dim CDO_Mail As Object
Dim CDO_Config As Object
Dim SMTP_Config As Variant
Dim strSubject As String
Dim strFrom As String
Dim strTo As String
Dim strCc As String
Dim strBcc As String
Dim strBody As String
strSubject = "Results from Excel Spreadsheet"
strFrom = "rdube02@gmail.com"
strTo = "rdube02@gmail.com"
strCc = ""
strBcc = ""
strBody = "The total results for this quarter are: " & Str(Sheet1.Cells(2, 1))

これのすばらしい点は、完全な電子メールメッセージをカスタマイズする任意の文字列を作成して、それを strBodyに割り当てることができることです。 変数。

を使用して、メッセージのコンポーネントをつなぎ合わせます 上記のように、任意のMicrosoftExcelシートのデータを電子メールメッセージに挿入するための文字列。

ステップ3:外部SMTPを使用するようにCDOを構成する

コードの次のセクションでは、外部SMTPサーバーを使用して電子メールを送信するようにCDOを構成します。

この例は、Gmailを使用した非SSLセットアップです。 CDOはSSLに対応していますが、それはこの記事の範囲外です。 SSLを使用する必要がある場合は、Githubのこの高度なコードが役立ちます。

Set CDO_Mail = CreateObject("CDO.Message")
On Error GoTo Error_Handling
Set CDO_Config = CreateObject("CDO.Configuration")
CDO_Config.Load -1
Set SMTP_Config = CDO_Config.Fields
With SMTP_Config
.Item("https://schemas.microsoft.com/cdo/configuration/sendusing") = 2
.Item("https://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com"
.Item("https://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
.Item("https://schemas.microsoft.com/cdo/configuration/sendusername") = "email@website.com"
.Item("https://schemas.microsoft.com/cdo/configuration/sendpassword") = "password"
.Item("https://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
.Item("https://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
.Update
End With
With CDO_Mail
Set .Configuration = CDO_Config
End With

ステップ4:CDOセットアップをファイナライズする

電子メールを送信するためのSMTPサーバーへの接続を構成したので、必要なのはCDO_Mailオブジェクトの適切なフィールドに入力することだけです。 、送信を発行します コマンド。

その方法は次のとおりです。

CDO_Mail.Subject = strSubject
CDO_Mail.From = strFrom
CDO_Mail.To = strTo
CDO_Mail.TextBody = strBody
CDO_Mail.CC = strCc
CDO_Mail.BCC = strBcc
CDO_Mail.Send
Error_Handling:
If Err.Description <> "" Then MsgBox Err.Description

Outlookメールオブジェクトを使用する場合に発生する可能性のあるポップアップボックスやセキュリティ警告メッセージは表示されません。

CDOは単に電子メールをまとめ、SMTPサーバー接続の詳細を利用してメッセージを送信します。これは、電子メールをMicrosoftWordまたはExcelVBAスクリプトに組み込む最も簡単な方法です。

コマンドボタンをこのスクリプトに接続するには、コードエディタに移動し、シート1をクリックします。 そのワークシートのVBAコードを表示します。

上記のスクリプトを貼り付けた関数の名前を入力します。

VBAスクリプトを使用してExcelスプレッドシートから電子メールを送信する方法

受信トレイで受信したメッセージは次のとおりです。

VBAスクリプトを使用してExcelスプレッドシートから電子メールを送信する方法

トランスポートがサーバーに接続できませんでしたというエラーを受け取った場合 、 With SMTP_Config の下にリストされているコード行に、正しいユーザー名、パスワード、SMTPサーバー、およびポート番号を入力したことを確認してください。 。

さらに進んで、プロセス全体を自動化する

ボタンを押すだけでExcelからメールを送信できるのはとても良いことです。ただし、この機能を定期的に使用することをお勧めします。その場合は、プロセスを自動化するのが理にかなっています。

そのためには、マクロに変更を加える必要があります。 Visual Basic Editorに移動し、まとめたコード全体をコピーして貼り付けます。

次に、 ThisWorkbookを選択します プロジェクトから 階層。

コードウィンドウの上部にある2つのドロップダウンフィールドから、[ワークブック]を選択します。 開くを選択します [メソッド]ドロップダウンから。

上記のメールスクリプトをPrivateSub Workbook_Open()に貼り付けます 。

これにより、Excelファイルを開くたびにマクロが実行されます。

VBAスクリプトを使用してExcelスプレッドシートから電子メールを送信する方法

次に、タスクスケジューラを開きます 。

このツールを使用して、Windowsに定期的にスプレッドシートを自動的に開くように依頼します。その時点で、マクロが開始され、電子メールが送信されます。

VBAスクリプトを使用してExcelスプレッドシートから電子メールを送信する方法

基本タスクの作成...を選択します アクションから メニューを表示し、アクションに到達するまでウィザードを進めます 画面。

プログラムの開始を選択します 次へをクリックします 。

VBAスクリプトを使用してExcelスプレッドシートから電子メールを送信する方法

参照を使用する ボタンをクリックして、コンピューター上のMicrosoft Excelの場所を検索するか、パスをコピーしてプログラム/スクリプトに貼り付けます。 フィールド。

次に、MicrosoftExcelドキュメントへのパスを引数の追加に入力します フィールド。

ウィザードを完了すると、スケジュールが設定されます。

将来数分間アクションをスケジュールし、機能していることを確認できたらタスクを修正して、テストを実行する価値があります。

:マクロが正しく実行されるように、セキュリティセンターの設定を調整する必要がある場合があります。

これを行うには、スプレッドシートを開き、ファイルに移動します>オプション>トラストセンター

ここから、セキュリティセンターの設定をクリックします 、次の画面でラジオダイヤルをブロックされたコンテンツに関する情報を表示しないに設定します 。

MicrosoftExcelをあなたのために機能させる

Microsoft Excelは非常に強力なツールですが、それを最大限に活用する方法を学ぶのは少し怖いかもしれません。ソフトウェアを本当にマスターしたいのであれば、VBAに慣れている必要があり、それは簡単な作業ではありません。

ただし、結果はそれ自体を物語っています。 VBAの経験が少しあれば、すぐにMicrosoft Excelに基本的なタスクを自動的に実行させ、より差し迫った問題に集中する時間を増やすことができます。

VBAで専門知識を構築するには時間がかかりますが、VBAに固執できれば、すぐに労力の成果を確認できます。

開始するのに最適な場所の1つは、ExcelでVBAを使用するための信頼できるチュートリアルです。それが完了すると、Excelからメールを送信するこの簡単なスクリプトは子供の遊びのように感じられます。


  1. Web フォームから Excel スプレッドシートを作成する方法

    調査を実施し、データをスプレッドシートにエクスポートする必要がある場合、やるべきことがたくさんあります。約 100 万 のアンケートに入力する必要があるとします。 人。その結果、タスクを完了するには丸一日かかります。そのため、データを Excel にエクスポートできる一般的なフォームを作成する方法を理解する必要があります。 自動的。このチュートリアルでは、 Excel にデータを入力する方法を紹介します。 Web フォームからのスプレッドシート。 Web フォームから Excel スプレッドシートを作成する 5 つの手順 ウェブ フォームを作成することから始めます。 Microsoft

  2. Gmail と Outlook を使用して暗号化されたメールを送信する方法

    セキュリティは、すべての主要な懸念事項の 1 つです。ソーシャル メディアであろうと電子メールであろうと、プライバシーに対する脅威はウェブ上で停滞しています。したがって、電子メールを暗号化して、悪名高いサイバー犯罪者から安全に保つことが重要です。 メールの送信は私たちの通常のタスクであるため、注意を払い、添付ファイルとメールを暗号化しておく必要があります。同じことを行うには、送信するメールが確実に暗号化されるようにする ProtonMail などのアプリを使用してメールを送信するなど、さまざまな方法があります。しかし、Outlook や Gmail で安全なメールを送信する方法を知っています