Excel テーブルで選択した連絡先に Office 365 メールを送信する. こんにちは、フリーランスエンジニア兼ライターのワキザカ サンシロウです。 皆さんは、ExcelVBAからOutlookを操作してメール送信する方法を知っていますか? ExcelVBAからメール送信ができれば、メール送信処理が自動化できるのでとても便利です。 そこで今回は、 ・ExcelVBAからメール送信する方法 エクセルVBAでOutlookを操作して、エクセルシートに一覧化された複数の送信先に、各メールの本文を変えつつ、メール送信する方法をご紹介しています。メールの冒頭部の宛名をコピペで作成していた方、もしかしたらこの方法でメール送信の手間が軽減できるかもしれません。 テキストボックスに直接入力やコピペ …, 一部の宛先に文字化けが発生したためTextBodyPart.Charsetを設定しています。. ューティング, Troubleshoot outbound SMTP connectivity issues in Azure, 送信メッセージにおける危険度の高い配信プール, High-risk delivery pool for outbound messages, 以前のバージョンのドキュメント.     Set db = OpenDatabase(path), これをExcel 上でVBA として実行した場合は正常に動きますが、VBA外(Exe やスクリプト)から実行すると "ActiveX コンポーネントはオブジェクトを作成できません” というエラーになります。, しかし、これを Office2013(それ以前を含む) をインストールした環境下では VBA でも VBA外でも問題なく動きます。, Visual Basic Editor (ALT+F11) の参照設定が示しているパスを Editor の参照から確認すると以下の場所に ACE 関連の DLL が存在するのを確認できます。, C:\Program Files (x86)\Common Files\Microsoft Shared\OFFICE15\, C:\Program Files\Microsoft Office 15\root\vfs\ProgramFilesCommonX86\Microsoft Shared\OFFICE15, つまり、VBAの環境からは、仮想的に上記場所に DLL が実体として存在しているように見えるので正常に動作するが、物理的にそこには存在していないので VBA 外からは DLL が参照できないことが原因ではないかと思います。, 物理的にコピーすれば動くのではと思いますが、VBA では仮想的に見せているようなのでそれに影響を与える可能性もあります。そのため、影響を与えないようにこのエラーを回避する方法があれば教えてください。, 例えば、DAO を使った WScript の次のようなスクリプト (sample.vbs) を記載したとします。, Set dbe = WScript.CreateObject("DAO.DBEngine.120"), Set db = dbe.OpenDatabase("sample.accdb"), C:\Windows\SysWOW64\wscript.exe   sample.vbs, Office2013 までは動動いていたスクリプトが、Office365(=一見Office2013に見えるけど) にアップデートすると最初の行で次のエラーで動きません, "DAO.DBEngine.120" という名前のオートメーション クラスが見つかりませんでした。, 実際、VBA を使いたいわけではないのですが、VBA でなぜ動くのかが分かれば、VBA 外から動かす解決策になるのではと思いここに質問しています。, Microsoft Access データベース ンジン 2010 再頒布可能コンポーネント, Office365 で発生する ActiveX コンポーネントはオブジェクトを作成できません の解決方法を教えてください. 送信メールを作成するVBAコードの作成前回はOutlookをExcelVBAで操作するための参照設定について記載しました。今回はOutlookを操作して送信メールを作成するVBAコードを紹介します。ExcelVBAでOutlookを操作でき 実際、VBA を使いたいわけではないのですが、VBA でなぜ動くのかが分かれば、VBA 外から動かす解決策になるのではと思いここに質問しています。 編集済み まぼろしぼうし 2015年12月21日 2:09; 2015年12月16日 7:56. Excel テーブルで選択した連絡先に Office 365 メールを送信する. 情報システム部門のご相談を承ります。 サインインして投票. 得意な分野はAccessによる短納期開発、 1. 執筆時点の2020年6月時点ではエクセルファイルにプログラムを埋め込むエクセルマクロ(VBA)はMicrosoft社から正式にサポート終了時期の発表はされていません。 しかし、 サポート終了のカウントダウン が始まったといえます。 根拠としては、永らくVisual Basic開発ツー … Accessでデータを表示して、その内容をそのままメール送信できたらいいのにな。と思うことはありませんか?, これまで様々なツールを開発してきましたが、Accessデータベースの情報を元にメール送信したいというニーズはかなり多いです。, AccessではVBAで簡単なプログラムを書くだけでメール送信できる方法が2つあります。, Access単体での実装ではなく、別ソフトウェア(Microsoft Outlook)を経由してメールを送信する方法です。, メリットはプログラミングが簡単であること、Outlookに送信履歴が残ることが上げられます。, デメリットとしては他のメーラーを使っている場合、わざわざOutlookにメール設定をしなければならないという点です。, Outlookに複数アカウントが設定されていた場合は、既定のアカウントにて送信されます。既定以外のアカウントを指定する方法はありません。, 常時Outlookを使われている場合は問題ありませんが、インストールされているけど使っていない場合などは、メールが送受信できるようにアカウントを設定しておく必要があります。, VisualBasic画面の上部メニューのツール → 参照設定 の順で選択します。, 「Microsft Outlook xx.x Object Library」 (xxはバージョン)にチェックを入れます。, 作成したフォームの「メール送信ボタン」のクリックイベントにて先のプロシージャを順番に起動するだけです。, Call MailOpen BIツール(QlikSense/QlikView)の開発です。 … こんにちは、フリーランスエンジニア兼ライターのワキザカ サンシロウです。 皆さんは、ExcelVBAからOutlookを操作してメール送信する方法を知っていますか? ExcelVBAからメール送信ができれば、メール送信処理が自動化できるのでとても便利です。 そこで今回は、 ・ExcelVBAからメール送信 … Excel ワークシートの選択した行に関する電子メールを送信します。 Call MailSend(Me.txt宛先, Me.txt件名, Me.txt本文) ’フォーム上の値を引数渡し, 今回はメールを送信するモジュールを標準モジュールに、呼び出し側は宛先・件名・本文を引数渡しする方法となっていますが、このあたりの作り方は臨機応変にお願いします。, CDOを使って送信するメリットは、ACCESS内で処理が完結する点です。他のソフトを使わないので利用しているメーラーに依存しません。, 送信履歴については、CCやBCCで自身にもメールを送れば特に問題にはなりませんが・・・。, CDOとはMicrosoft Collaboration Data Objectsの略称で、Microsoftが提供するメッセージング アプリケーションやコラボレーション アプリケーションを構築するためのテクノロジーです。, ※標準モジュールにする方がすっきりしますが、今回は簡易的に1つのフォームで完了するようにしています。, 作成したフォームの「メール送信ボタン」のクリックイベントにて先のプロシージャを起動します。画面で指定された差出人・宛先・CC宛先・件名・本文を参照してメール送信されます。, AddAttachmentはCDOオブジェクトのプロパティではなくファイルを添付するというメソッドですので、【=】で代入ではなく、AddAttachmentの引数渡し【スペース】である点に注意してください。, こちらはメールを送信するモジュールをメール送信フォームに直接記述する方法をとっていますが、このあたりの作り方も臨機応変にお願いします。, 上記のサンプルでobjCDO.To, objCDO.Fromへのアドレス代入の際、以下のように表示名を足した文字列を代入することで、表示名をコントロールすることが可能です。, objCDO.To = “表示名 ”, objCDO.From = ” 表示名 ”, 具体的には、以下のように表示名の変数と宛先の変数、”<>”記号を&を使って結合しましょう!, まずは基礎から・・・という方はProgate、Udemy、どっとインストールなどがおすすめ!, プログラマーと社内SEとしての経験を活かして、 Microsoft 365 または Office 365 の SMTP リレーでは、コネクタを使用してデバイスやアプリケーションから送信されたメールを認証します。 Microsoft 365 or Office 365 SMTP relay uses a connector to authenticate the mail sent from your device or application. 作成者: Microsoft. 返信 | 引用 回答 text/html 2016/01/27 2:04:07 toribird 1. 連続した …, Accessの処理において、「ユーザー指定のフォルダにファイルを出力する」というニーズがあります。 作成者: Microsoft. 現在はCMSを利用したホームページの作成にも力を入れています。, AccessのVBAからWebAPIをコールする方法です。 VBAからOutlookを利用できるように、参照設定を追加する必要があります。 VisualBasic画面の上部メニューのツール → 参照設定 の順で選択します。 「 Microsft Outlook xx.x Object Library 」 (xxはバージョン)にチェックを入れます。 実装方法 私はインセンティブ配信用のURLをAPI関数を使って取得するために利用しま …, Access VBAではDocmd.OpenFormでフォームを開く際、引数として開く側のフォームに値を渡すことができます。 はじめに. ・VBAでプログラミングを覚えたからには、メール送信までやってみたい! ・アウトルックでメールで送信することは知っているが、具体的な方法はちゃんと分かっていない… ・Outlookのオフィスソフトやインターネットエクスプローラとエクセルを連携させてみたい! Excel ワークシートの選択した行に関する電子メールを送信します。 VBAはExcelの操作を自動化するマクロ機能で使われているプログラミング言語です。「VisualBasicApplications」の略になります。マクロVBA入門シリーズでは、始めはより詳しく丁寧に解説し、少しずつ難易度を上げることで無理なく学習を進められるようにしています。 執筆時点の2020年6月時点ではエクセルファイルにプログラムを埋め込むエクセルマクロ(VBA)はMicrosoft社から正式にサポート終了時期の発表はされていません。 しかし、サポート終了のカウントダウンが始まったといえます。, 根拠としては、永らくVisual Basic開発ツール(VB6.0)が2008年4月8日にサポート終了となりました。VB6がサポート終了となったのだから、VBAもそろそろかと、ビクビクしていた開発者の方も多いと思いますが、Office2019でも元気に動作しています。 しかし、Office365にMicrosoft社が本腰を入れているので、もうそろそろサポートを終了してくるのでは無いかと私は予想しています。, 現状Office365だとエクセルマクロVBAを動かそうとするとどうゆう状態になるの?と気になっている方も多いと思いますので、挙動をまとめたいと思います。, ユーザーコントロールとは、エクセルにボタンが付いているようなエクセルファイルや、エクセルを起動したら、フォームと呼ばれる画面が表示されるようなエクセルマクロ(VBA)を指します。, 従来、デスクトップ版のエクセルでは、以下のように開発タブを表示し、VisualBasicというボタンをクックする事でプログラミングを行う事が出来ました。, このような形式のエクセルマクロをOffice365のプラットフォームであるSharepointもしくは、Teamsで開くと以下のような「次の機能は、ブラウザーでは表示できません」「ツールバーコントロール、ツールボックスコントロール ActiveXコントロールなどのオブジェクト ただし、このファイルをデスクトップアプリで開いて、このブックの全てのコンテンツを表示することが出来ます。」エラーメッセージが表示され、エクセルマクロが起動しません。, 要するに、コントロール等を使用したVBAは対応していませんという旨のメッセージが表示されます。ではボタン等、エクセルシートに貼りついていなければ、いいのかと試してみました。, ユーザーコントロール有りのエクセルマクロは一目で分かりますが、ユーザーコントロールが無いエクセルマクロ(VBA)はコードを見る必要があります。エクセルシートの開発タブをクリックして、VisualBasicというボタンをクリックすると、VBAで書かれたプログラムがあるかの確認を行う事が出来ます。, 画面コントロールが無いVBAソフトは、ユーザーイベント(使用者の操作)を元にプログラムが実行する作りになります。 例えば、ユーザーがセルに入力を行ったらセルの値変更イベントを元に、裏で計算を行うプログラム等が挙げられます。, このようなエクセルマクロ(VBA)を同様にSharepointで実行するとどうなるのか、確認を行います。結果はマクロは全く動作しません。表面上エラーすら表示されない状態です。, たまにエクセルの表計算の事をマクロと言われている方を見受けられます。エクセルの計算式はそのまま使用出来るので大丈夫です。 以下のように個数×単価をセルに式を入れるようなエクセルはそのまま使用できます。, 世界中でソフトウェアはクラウドでサブスクリプション化が進んでいます。マイクロソフトもOffice365へのシフトが加速しており、そのうちデスクトップ版を収束させたい感じがします。VBAが急に使えなくなるという事は当面無さそうですが、これから新規でVBAを使用した業務効率化のアプリケーションを作成する事は避けておいた方が無難と言えます。, MBAホルダーでシステムエンジニアが解説。Adobe社と同じサブスクリプション化を中小企業がマネする事は可能なのか、実際に検討した経験を元に解説を行います。, エクセルマクロソフトVBAで作成したシステムを更新することのメリットをまとめました。工場、病院の方は特に必読の内容です。, 1分で理解!MBA保持現役SEが簡潔にまとめた、スマホで営業行動が筒抜けにする方法, 1分で紹介!MBA保持現役SEが簡潔にまとめた、アイディアをまとめる無料デジタルツール, 1分で解説!MBA保持現役SEが簡潔にまとめた、スマホをバーコードリーダーとして使用して在庫管理する方法, 法人営業もこなす経営企画に在籍中のシステムエンジニアが使ってみて感じた、「Musubu」の特徴についてまとめました。, 忙しいのに儲からないのには理由がある!非製造業でも知っておくべき制約理論(TOC理論)とは. Office365 をインストールしたPCでMicrosoft Office xx Access Database engine Object Library を使いDAOを使った以下のプログラムを作成したとします。, path = "xxx\xxx\sample.accdb"