2018年3月23日金曜日

使いにくいOutlookを少しでも便利に【後編】

こんにちは、ふじかーです。

メーラーを Thunderbird → Outlook に乗り換えた際の
カスタマイズメモの続きです。

前回のはこちら
使いにくいOutlookを少しでも便利に【前編】

送信済みメールを編集して再送信

何度も似たような構成のメールを送る事ってありますよね、定期報告とか。
前回のメールの一部だけ更新して再送したいとき。

Thunderbirdでは、
 送信済みタイトル一覧から、再送したいメールを右クリック→[新しく編集]を選択
とすればメール作成画面になりました。

Outlookでは[新しく編集]メニューがありませんが
下記の方法で似たことが出来ます。

・再送したい送信済みメールをダブルクリックし、一度開く
・[メッセージタブ]-[移動]-[アクション]-[このメッセージを再送]
・メール作成画面になるので編集、送信


Thunderbirdでは一覧からすぐメール作成画面だったのに
いちいち何操作も経るのがイラッとする、という方は

上記の [このメッセージを再送] の上で右クリックし
これも [クイック アクセス ツール バーに追加] してやると、少しマシになります。


【VBA】マクロを利用したカスタマイズ

あと、
・メール送信時の宛先チェックウィンドウを出す
・BCCに、常に自分のアドレスを追加する
という事をしたいんですが
Outlookの設定項目として存在してないようです。

ですが、Outlookは VBAマクロ が使用できるので、
「メール送信のユーザ操作時」に実行される処理として組み込んでやります。

OutlookでVBAを使用する場合、事前準備として
下記の2点を一度だけ実行する必要があるようです。

■マクロの証明書を作る
・[スタート]-[すべてのプログラム]-[Microsoft Office]-[Microsoft Office ツール] にある[VBA プロジェクトのデジタル証明書] を起動
・[デジタル証明書の作成] ダイアログの [証明書の名前] に自分の名前を入力
・[OK] をクリック


■デジタル署名
・[ツール]-[デジタル署名] をクリック・[選択] をクリックし、[証明書の選択] で先ほど作ったデジタル証明書を選択し、[OK] をクリック
・Ctrl+S キーを押し、マクロを VbaProject.OTM として保存


これでVBAが使えるようになりました。

処理を組み込む際は、Excelマクロ等と同じように
・Outlook を起動して
・Alt+F11 キーを押して Visual Basic Editor を起動し
・プロジェクト → [Project1] → [Microsoft Office Outlook Objects] → [ThisOutlookSession] をダブルクリック
して、コードウィンドウに記載していきます。

【VBA】メール送信時の宛先チェックウィンドウを出す

昔、送っちゃいけない人にメールを送ったことがあるので
送信前に「宛先の指さし確認」をしたいんです。
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
  On Error GoTo Exception

  '表示メッセージ'
  Dim strMsg As String
  Dim objRec As Recipient
  strMsg = "件名:" & Item.Subject & vbCrLf & vbCrLf
  For Each objRec In Item.Recipients
    strMsg = strMsg & "・" & objRec.Name & vbCrLf
  Next
  strMsg = strMsg & vbCrLf & "この宛先にメール送信します。よろしいですか?"

  '送信判断'
  If MsgBox(strMsg, vbExclamation + vbYesNo + vbDefaultButton2) <> vbYes Then
    'キャンセル'
    Cancel = True  
  End If

  On Error GoTo 0
  Exit Sub

Exception:
  MsgBox CStr(Err.Number) & ":" & Err.Description, vbOKOnly + vbCritical
  Cancel = True
End Sub

【VBA】BCCに 常に自分のアドレスを追加する

ちゃんとメールが相手に届いているか?の確認の為
自分発信のメールを自分でも受けたいんです。
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
 Dim objMe As Recipient
 Set objMe = Item.Recipients.Add("fujicar@○×.co.jp")
 objMe.Type = olBCC
 objMe.Resolve
 Set objMe = Nothing
End Sub
(実際は、先ほどの「宛先チェック」マクロのif文に組み込んでます)

ようやくマシになってきました。
まだ
 ・検索が不正確で使えない
 ・閲覧ウィンドウのヘッダ情報枠が幅を取りすぎてて狭い
 ・HTMLメールがテキスト変換された際、一行おきに空行が入る
など不満は残ってますが
ひとまずこれで慣れていこうと思います。


1 件のコメント:

  1. gmailからoutlookに移行して、使い勝手の悪さに苦労していたので、大変助かりました!
    ありがとうございます!

    返信削除