ブログタイトル: 自動化の力を活用!VBScriptでOutlookを使ったメール送信の自動化

はじめに

日常の業務の中で、定期的にメールを送信することは多くの人にとって避けられないタスクです。しかし、そのたびに同じ内容を手作業で入力して送信するのは時間の無駄です。そこで、今回はVBScriptを使ってOutlookを自動化し、メール送信の手間を減らす方法をご紹介します。

VBScriptとは?

VBScript(Visual Basic Scripting Edition)は、マイクロソフトが開発した軽量のスクリプト言語です。主にWindows環境で使用され、簡単なスクリプトから複雑な自動化まで幅広く対応しています。特にWindowsアプリケーションとの連携が強力で、OutlookなどのOfficeアプリケーションの操作を自動化することが可能です。

Outlookを使ったメール送信の自動化

今回の例では、VBScriptを使ってOutlook経由で自動的にメールを送信する方法を紹介します。このスクリプトは、現在の年月を件名や本文に含め、特定の宛先に定期的にメールを送信することができます。


Option Explicit
'初期処理
Dim outlook, item, body, subject, byLine, mailTo, mailCc, nowYear, nowMonth
Set outlook = CreateObject("Outlook.Application")
Set item = outlook.CreateItem(0)

nowYear = Year(Now)
nowMonth = Month(Now)

'TO
mailTo = "fff@jp.com;sss@jp.com;"
'CC
mailCc = "ya@jp.com;"

'件名
subject = nowYear & "年" & nowMonth & "月度の報告"

'メール本文
body = "宛先各位" & vbCrLf & vbCrLf
body = body & "お世話になっております。" & vbCrLf & vbCrLf
body = body & nowYear & "年" & nowMonth & "月度の報告を送付させていただきます。" & vbCrLf & vbCrLf
body = body & "以上、ご確認の程お願い申し上げます。"

'パラメータの設定
item.To = mailTo
item.Cc = mailCc
item.Subject = subject
item.Body = body
item.Display

'以下を実行するとメール送信まで行う
'item.Send

'終了処理
Set item = Nothing
Set outlook = Nothing
WScript.Quit

スクリプトのポイント

初期設定とオブジェクトの作成

スクリプトの初めに、Outlookのアプリケーションオブジェクトと新しいメールアイテムを作成します。

件名と本文の動的生成

現在の年月を自動で取得し、それを件名と本文に含めています。これにより、毎月異なる件名と本文でメールを送信することができます。

メールの表示と送信

item.Displayでメールを表示し、手動で確認後に送信することも可能です。item.Sendをコメントアウトして解除することで、スクリプト実行時に自動でメールを送信できます。

文字化け

日本語の文字化けを回避するために、ファイルを保存時、[名前を付けて保存]ダイアログで、**「文字コード」**を「ANSI」または「Shift-JIS」に設定して保存します。

これは、WindowsのデフォルトのShift-JISエンコーディングを使用するためです。

バッチファイル経由で実行する

バッチファイルを経由して実行したい場合の方法を記載します。

このバッチファイルを実行することで、まずコマンドプロンプトの文字コードをUTF-8に設定し、その後に指定したVBScriptを実行します。

デスクトップ上にあるVBScriptファイルのパスを指定しています。


@echo off
chcp 65001
cscript //nologo "%USERPROFILE%\Desktop\your_script.vbs"
pause

タスクスケジューラでの自動実行

VBScriptやバッチファイルは、Windowsのタスクスケジューラを使用して特定の時間に自動実行することができます。タスクスケジューラは、指定された時刻、特定のイベント、または条件が満たされたときにプログラムやスクリプトを自動で実行するためのWindowsの機能です。

タスクスケジューラの設定方法

  1. タスクスケジューラの起動 Windowsの「スタート」メニューから「タスクスケジューラ」を検索して起動します。
  2. 基本タスクの作成 「タスクスケジューラライブラリ」で右クリックし、「基本タスクの作成」を選択します。
  3. タスクの名前と説明を設定 タスクにわかりやすい名前を付け、必要に応じて説明を追加します。
  4. トリガーの設定 タスクを実行するタイミングを設定します。例えば、「毎日」「毎週」「毎月」などから選択できます。
  5. 操作の設定 「プログラムの開始」を選択し、実行するスクリプトやバッチファイルのパスを指定します。 例: C:\Scripts\send_report.vbs
  6. 完了 「次へ」ボタンを押して、タスクを保存します。

注意点

  • 実行環境: タスクスケジューラで設定されたスクリプトやバッチファイルは、指定されたユーザーの権限で実行されます。特定のフォルダやネットワークリソースへのアクセス権限に注意が必要です。
  • エラーハンドリング: スクリプトやバッチファイルがエラーを出した場合の対応策を考慮しておくと良いでしょう(例えば、ログの記録やエラーメッセージの通知など)。

終わりに

VBScriptを使ったOutlookの自動化は、業務効率化の一環として非常に有用です。特に、定期的なタスクの自動化によって時間を節約し、よりクリエイティブな業務に集中できる環境を整えることができます。この機会に、ぜひ試してみてください!