これで、電子メールアイテムの本文テキストが HTML 形式で表示されるようになります。 The body text of the email item will now appear in HTML format. そのままでもいいんですが、使う方のわかりやすさのためにはやはりOutlookのウィンドウを表示したいですね。 またVBAなどで特定のフォルダからメールや投稿... Office2013へのアップグレードでExcelVBAのコードが使用できなくなる ©Copyright2020 amacoda blog.All Rights Reserved. しかたがないので、CreateObject関数でOutlookオブジェクトを取得すると、 もしも、エクセルファイルに絞り込むなら「"Excelファイル", "*.xlsx"」とします。 また、 The following Microsoft Visual Basic for Applications (VBA) example creates a new MailItem object and sets the BodyFormat property to olFormatHTML. 最近自身の予定はGoog... ユーザーフォームを使用して、VBA(マクロ)を実行しやすくしたり、条件分岐を便利にする OutlookのActiveWindowメソッドは、Outlookウィンドウのオブジェクト(Explorerオブジェクト、またはInspectorオブジェクト)を返します。 The body text of the email item will now appear in HTML format. 意外と面倒なOutlook予定表入力 しかし、HTML形式の場合、エクセル上にHTML言語の仕様に沿った形でマークアップしておく必要があります。, 件名2の書式を整え、件名1と件名2を合成して、Subjectプロパティに代入します。, 日付の書式を整え、本文1・日付・本文2を合成します。 1 テキスト型. ②バーコードがセルの背景... 追記:新しいバージョンの公開 として、AddメソッドでPosition:=~(~はLong型変数)とすることで、添付ファイルの挿入位置を指定できましたが、Outlook2010以降では、その指定は無効になっているようです。 作成したVBA(マクロ)のプログラムを、自分以外の人に使用してもらう場合に、ある場合はこのプログラム、別の場合にはまた他のプログラムというように条件を... OutlookのフォルダはVBAで作成できる 届いたメールをフォルダ管理する方は多いと思いますが、Outlookのフォルダ作成は結構面倒でたくさんのフォルダを作成するには時間がかかります。 エラーが起こりにくくより機能を追加した新しいサンプルコードはこちらの記事を参考にしてください。 All text formatting will be lost when the, 次の Microsoft Visual Basic for Applications (VBA) の例では、新しい, The following Microsoft Visual Basic for Applications (VBA) example creates a new, これで、電子メールアイテムの本文テキストが HTML 形式で表示されるようになります。. ・InitialFileNameプロパティはここではコメントにしていますが、最初にダイアログを開いたときに選択しておくファイルを指定することができます。例えば、 このマクロで作成するメールの概要を示します。 リッチテキスト形式 olFormatRichText; 以上の3種類を指定できます。 どうやら本文の内容を記載するときにHTMLBodyで指定する際は最初にこのプロパティをolFormatHTMLに指定しておく方が良さそうな気がします。 ④Body. サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、, Office VBA のサポートおよびフィードバック, 以前のバージョンのドキュメント. そこで、Is演算子を使ってNothingと比較して、Outlookウィンドウが非表示ならば、そのウィンドウを表示するという操作をしています。, Outlookで一番重要なオブジェクトは2つあり、それはApplicationオブジェクトと、NameSpaceオブジェクトです。 私は仕事柄メールをよ... Dictionaryオブジェクトを用いたVBAの高速化①(VlookUp関数の代用), DesktopPath = WSH.SpecialFolders(“Desktop”), ’宛先は氏名を入れて「名前の確認」をクリックすることでアドレス一覧から選択できます。, oItem.Body = Cells(i, 1) & “様” & vbLf & vbLf & _, “いつもお世話になっております。” & vbLf & Cells(i, 5) & vbLf & vbLf, oItem.Attachments.Add DesktopPath & “” & Cells(i, 6), ’oItem.DeferredDeliveryTime = Year(Cells(i, 7)) & “/” & Month(Cells(i, 7)) & “/” & Day(Cells(i, 7)) & ” ” & _, Hour(Cells(i, 8)) & “:” & Minute(Cells(i, 8)) & “:” & Second(Cells(i, 8)), oItem.DeferredDeliveryTime = Year(Cells(i, 7)) & “/” & Month(Cells(i, 7)) & “/” & Day(Cells(i, 7)) & ” ” & _, Hour(Cells(i, 8)) & “:” & Minute(Cells(i, 8)), oItem.SendUsingAccount = Session.Accounts(Cells(i, 9).Text). その中でよく使うものを挙げてみます。, ”2017/07/02 0:00”の形式で指定するとその時間が過ぎてから送信されます。, BCCを設定するプロパティです。 よろしければこちらの記事をご覧ください。 その値はファイルのフルパスなのですが、それが長さ0の文字列「""」の場合はこの処理を、それがPDFファイルのフルパスでない場合はこの処理をする、という分岐をSelect Case文を使って実現しています。, 添付ファイル名欄が空白の場合、VBA的にいうと、長さ「0」の文字列が入っているといいます。 Applicationオブジェクトのほうは、他のVBAをかじったことがある方なら慣れているでしょうから、最も重要な、すなわち主要なオブジェクトはNameSpaceオブジェクトだといえます。 このため、本文1・本文2の書式をReplace関数を用いて整えています。, 送信メールを実際に送信してしまう代わりに、画面上で確認するために表示します。 前回Outlookのパブリックフォルダに投稿されたファイルから添付ファイルを一括で取り出すで紹介したExcelVBAは、Office2007を使用していた... 以前作成したバーコード作成用VBAコードの修正と改良 エクセルシートにメールの定型の内容を記入しておき、ボタンを押すとOutlookのメールの画面を起動してくれるマクロを考えました。, ・動作は無保証です。 3 リッチテキスト型があります。 1のテキスト型では表や図形は作成できません。 2html型、3リッチテキスト型へ形式を変えて、張り付ける必要があります。 一例で … 普段仕事で使っている便利なコードを色々紹介しています。. Office VBA またはこの説明書に関するご質問やフィードバックがありますか?. 正確性が気になる方はー1/0で表現することをおススメします。, ここではファイルのフルパスをいきなりセルに代入することはしていませんが、次のようなやり方も, まちがってはいませんし、本マクロのようなシンプルなマクロでは「あり」なのですが、いったんファイルのフルパスということがわかるような名前の変数「FilePath」にいったん値を格納してからセルに代入する「クセ」をつけておいたほうがよいでしょう。, セル「C12」に入っているはずの値を評価します。 前回ExcelVBAでOutlookの送信メールを作成するでOutlookのメールを作成するコードを紹介しましたが、ご質問いただいた内容があったので修正を兼ねてより詳しいVBAコードを紹介します。, 調べてみるとプロパティ自体はたくさんあるのですが、もともとほぼ使用しないものも多いみたいです。 以前にこちらの記事でバーコードを作成するExcelVBAコードを紹介しましたが、その時は下記の問題点・課題がありました。 1.もともと起動していたOutlookの場合は、そのウィンドウを表示したままオブジェクトを取得 ・本文の前半と後半の間に前営業日の日付を自動入力します。 この記事で紹介しているVBAコードは改良したものを公開しています。 "C:\Users\amacoda\Documents\PDF ファイル\" ・参照設定は、「Microsoft Outlook 16.0 Object Library」に対して参照設定してください(Excel 2016の場合)。 エクセルシートにメールの定型の内容を記入しておき、ボタンを押すとOutlookのメールの画面を起動してくれるマクロを考えました。 ・動作は無保証です。 ・エクセルで動くマクロです。 ・動作確認は、Windows 10 + Excel 2016、Windows 7 + Excel 2010でおこなっています。 ・参照設定は、「Microsoft Outlook 16.0 Object Library」に対して参照設定してください(Excel 2016の場合)。 ・ExcelとOutlookのバージョンがそろっていない場合(例えば、Excel 2016 と Outlook 2010 など)、本マク … ①8桁JANコードを作成できない とファイル名を指定せずにフォルダ名を指定すると、「PDF ファイル」フォルダは選択しますが、ファイルは選択しないので、ファイル名欄は空白になります。, FiltersプロパティのAddメソッドのパラメータに「"PDFファイル", "*.pdf"」と文字列を追加すると、PDFファイルに絞り込みます。 この画像を見るとわかりやすいかもしれません。, ・PDFファイルを1通添付します。 つまり、リッチテキスト形式のメールは推奨されず、使わないほうがいいという形式になっているといえます。, エクセル上に作成したメールの内容をアウトルックに流し込むために処理をおこないます。, ここでは、テキスト形式にしましたが、HTML形式も選択できます。 2.起動していなかったOutlookの場合は、そのウィンドウを表示しないままオブジェクトを取得 ToやCCと同じように登録されている名前かもしくはメールアドレスで指定できます。, どうやら本文の内容を記載するときにHTMLBodyで指定する際は最初にこのプロパティをolFormatHTMLに指定しておく方が良さそうな気がします。, 外部の方にメールを送る際に、HTML形式だときちんと表示されない場合があります。 Microsoft Outlook provides three body text format options: Plain Text, Rich Text (RTF), and HTML. を指定すると、ダイアログを開いたとき、hoge.pdfを選択します。 と、ウィンドウの表示の有無という違いがありますが、オブジェクトを取得することはできます。。, 未起動のOutlookを起動させて、Outlookオブジェクトへの参照を変数に格納した場合、Outlookのウィンドウは非表示です とあるように、ファイルダイアログは実行ボタンを押したとき、Long型の値である「-1」を、キャンセルボタンを押したとき、同じくLong型の値である「0」を返します。 しかし、True の実態は「-1」、Falseの実態は「0」であることから、返り値をTrue/Falseで表現しても本マクロは動作します。 マクロ上で送信までしてしまいたい場合は, と入力すれば送信できます。しかし、画面上で確認もせずに送信するのは大変危険なので、このコマンドは使わないほうがよいと思います。, これはそんなに難しいマクロではありませんが、アウトルックのオブジェクトをいじること自体に慣れていない方が大半ではないでしょうか。 メールの本文には. 追記:2019/09/06 ひとつ注意するのは、エクセルのセル内改行の形式はラインフィード(Line Feed)であるのに対して、アウトルックのメールアイテム内の改行形式はキャリッジリターン・ラインフィード(Carriage Return, Line Feed)ということです。 こんにちは、フリーランスエンジニア兼ライターのワキザカ サンシロウです。 皆さんは、ExcelVBAからOutlookを操作してメール送信する方法を知っていますか? ExcelVBAからメール送信ができれば、メール送信処理が自動化できるのでとても便利です。 そこで今回は、 ・ExcelVBAからメール送信する方法 ・署名はOutlookから引用するのではなく、シート上に記入しておきます。 Session.Accounts(“アカウント名”)の形式で記載します。, 以下のように作成したExcelのシートの内容をOutlookのメールに反映するプログラムになっています。, 独学でVBAを学んでいる会社員です。 こちらの記事は以前に紹介したコードです。 私が最初に思いついたのは本マクロでした。他には、受信したメールを、受信した後の任意の時点で、あとからフォルダにメール振り分けするマクロが代表的なマクロだと思います。. Excel・Word・Powerpointファイルのドキュメント情報を削除するマクロ, 複数フォルダ内のExcel・Word・Powerpointファイルにパスワードを一括設定・解除するマクロ(サブフォルダ内も処理する再帰呼び出し), フォルダ内のExcel・Word・Powerpointファイルにパスワードを一括設定するマクロ, フォルダ内のExcel・Word・Powerpointファイルのパスワードを一括解除するマクロ, Visioの代わりになるドローソフト(インフォグラフィックソフト) - draw.io, Visioの代わりになるドローソフト(インフォグラフィックソフト) – draw.io. 最初は、何も覚えていないので、やりたいこともシンプルだと思います。 NameSpaceオブジェクトの取得方法は、呪文のようの覚えてもかまわないと思います。GetNameSpaceメソッドのパラメータがサポートしているNameSpaceオブジェクトの種類は「MAPI」の1種類だけなので、他の書き方はありません。, これからメールを送信するので、先に送信済みアイテムフォルダを表示します。 このフィルタは何個でも追加できるので、複数の種類のファイルを絞り込みに加えることができます。, ここに ・本マクロでは、「AllowMultiSelect = False」として単一のPDFファイルを添付していますが、複数のPDFファイルを添付したい場合は、「False」を「True」に変更すると、添付が可能になります。 Outlookメールの本文と宛先の一部を変更してたくさん送るツール その場合、ファイルを添付してもらう必要があるため、警告メッセージを表示して本マクロを終了します。, 添付ファイル名欄が空白でない場合、まず拡張子を取得します。 NameSpaceオブジェクトさえ取得すれば、その膨大なプロパティとメソッドを自由に使えます。 そういった際はリッチテキスト形式やテキスト形式で送るときちんと表示されることが多いです。, 複数のアカウントを持っているときに、アカウントの切り替えを行います。 BodyFormat = olFormatRichText ・エクセルで動くマクロです。 外部の方にメールを送る際に、HTML ・動作確認は、Windows 10 + Excel 2016、Windows 7 + Excel 2010でおこなっています。 ・ファイルはここからダウンロードしてください。, このマクロはPDFファイルを添付するマクロとメールを作成するマクロから成り立っています。 "C:\Users\amacoda\Documents\PDF ファイル\hoge.pdf" ・ExcelとOutlookのバージョンがそろっていない場合(例えば、Excel 2016 と Outlook 2010 など)、本マクロは動かない可能性が高いと思います。参照設定をうまく設定すれば動くかもしれませんが、バージョンをそろえることをおススメします。 ・メールを自動送信するのではなく、あくまで定型文を自動作成するのにとどめています。なお、自動送信は非常にカンタンにできてしまってかえって危険なのであえてしていません。, ・ButtonNameプロパティに設定したボタン名は、最初は適用されずに「開く(O)」となっていますが、ファイルを選択すると変化し、「PDF添付(A)」となります。 GetDefaultFolderメソッドを使って送信済みアイテムフォルダを取得しますが、このメソッドのパラメータは、送信済みアイテムフォルダの他、予定表フォルダ、連絡先フォルダ、受信トレイフォルダなど、計20種類のフォルダを取得することを可能にしています。, 命令文を見たまま、フォルダを表示します。送信済みアイテムフォルダ内の特定の項目の表示を要求しているのではないため、エラーを返しません。, Outlookは、最初に開いた画面サイズを最大だと勘違いして記憶しているので、一度標準サイズに変更してから画面を最大化します。, 本マクロの中で一番重要なオブジェクトを取得します。CreateItemメソッドで作成できるオブジェクトの種類は8種類あります。, Outlook2003以前であれば、リッチテキストメール(olFormatRichText)作成時に 「Displays a file dialog box and returns a Long indicating whether the user pressed the Action button (-1) or the Cancel button (0).」 ・件名に前営業日の日付を自動入力します。 覚え方としては、アウトルックのオブジェクトの中で何が重要か(どれを先に覚えるべきか)ググって確認し、あとはオブジェクトブラウザとヘルプ(できれば英語版のほうのウェブヘルプ)を調べれば、覚えたいものを早く覚えられるのではないでしょうか。 ョンがあります (テキスト形式、リッチ テキスト形式 (RTF)、および HTML)。. Have questions or feedback about Office VBA or this documentation? 変数Extensionに、Right関数を使ってセルC12に入っている文字列の右から4文字を格納し、LCase関数を使って小文字化し、それを「.pdf」という文字列と比較して、結果が「.pdf」でないのであれば、警告メッセージを表示し、セルC12を空白にして本マクロを終了します。, セル「C3」「C4」「C5」の文字列をそれぞれ、toAddress、ccAddress、bccAddressという何の変数かわかりやすい名前の変数に代入し、それぞれが長さ「0」の文字列である、すなわち宛先がTo・CC・BCCのどれにも入っていない場合は、警告メッセージを表示して本マクロを終了します。, PathNameに長さ0の文字列「""」を指定すれば、CreateObjectと同等のことができると、ここには書いてあるのですが、なぜか会社の環境(Windows 7 + Office 2010)では、オブジェクトを取得することができませんでした。 ・宛先は、To、CC、BCCともに自由に設定できます。 2 html型.