lisz-works

技術系だけど関係ないこと多い系ブログ

【Outlook2010】楽をしたくて作ったマクロ

【スポンサーリンク】

プログラムのソースコード

皆さんプライベート以外での普段メールって、何を使ってやり取りしていますか?

会社なんかでは、Microsoft Officeが入っているので、そのままOutlookを使ってるなんて方も多いんじゃないでしょうか?

僕も会社では、Outlookが指定されているのですが、今回はOutlookでの作業を多少楽にする為に作ったマクロについて書いていきたいと思います。

マクロって何?

マクロって何?はこちらの記事をご参照ください。

www.lisz-works.com

環境

  • Outlook 2010

恐らく2010以外でも使えるかと思います。
が、検証した分けではないので、何かあった際は自己責任でお願い致します(そんな危険なものを作ったつもりもないですが)。

導入方法

導入方法はこちらの記事をご参照ください。

www.lisz-works.com

使い方(ボタンの設置)

クイックアクセスツールバーの右にある▼を押し、「その他コマンド…」を選択します。
クイックアクセスツールバーは、タイトルバー左側に表示されたボタンの所です。
ココに色々とショートカットボタンが置けます。

Outlook クイックアクセスツールバーのメニューボタン

クイックアクセスツールバーの設定画面が出てきます。

f:id:liszworks:20161129223445p:plain

ここで「コマンド選択」から「マクロ」を選択します。
そうすると、作成したマクロ名の一覧が出てきます。

Outlook クイックアクセスツールバーにマクロを設定する

ここで任意のマクロを選択し、追加ボタンを押すと、クイックアクセスツールバーにそのマクロを実行するボタンが追加できます!
あとはボタンの名称や、変更ボタンからアイコンの変更を行うことができます。

クイックアクセスツールバーのカスタマイズが終わったら、OKボタンで確定すれば完了です。

マクロ集

作成したマクロ達です。
簡単なものばかりですが、ご参考までに…

返信メール

メールの閲覧画面で選択しているメールに対して、返信用メールの作成画面を開きます。

通常の返信ボタンとの違いはこちらです。

  1. 定型文をセット(お疲れ様です~)
  2. BCCに自分のアドレスをセット

今はBCCだけですが、必ず固定でCCやBCCに誰かのアドレスを入れる決まりがある場合、同様に追加すれば返信時に必ずそのアドレスが入るようにカスタムできます。

「単体宛」、「上司を含む」、「グループ全員を含む」みたいに複数作って、ボタンで設置しておいても楽かもしれませんね。僕は需要が無いのでやってませんが。

'
' Global
' ★ソースの先頭に記述してください。
' ★他のソースで既に書いている場合、無視してOKです。
'
Const BLANK_MSG_TXT = "" & _
          vbNewLine & _
          vbNewLine & _
          "お疲れ様です。" & _
          vbNewLine & _
          "xxxです。" & vbNewLine & vbNewLine & vbNewLine & _
          "以上、宜しくお願い致します。" & vbNewLine & vbNewLine

'----------------------------------------

'
' 返信メール
'
Public Sub Reply()
    ' メールアイテム
    Dim msg As MailItem
    
     ' メールをどのように開いているか確認 ------------------
    If TypeName(Application.ActiveWindow) = "Inspector" Then
        ' メールを別ウィンドウとして開いている場合
        Set objItem = ActiveInspector.CurrentItem
    Else
        ' メールを閲覧ウィンドウで開いている場合
        Set objItem = ActiveExplorer.Selection(1)
    End If
    
    ' 選択しているメールアイテムの返信メールを取得 ---------
    Set msg = objItem.Reply
    
    ' メールのカスタマイズ ---------------------------------

    ' BCCに自身のメール挿入
    msg.BCC = "my_address@jp"
        
    ' 本文の挿入
    msg.Body = BLANK_MSG_TXT & Right(msg.Body, Len(msg.Body) - 4)
    
    ' 作成返信メールの表示 ---------------------------------
    msg.Display
End Sub

全員に返信

メールの閲覧画面で選択しているメールに対して、全員に返信する為のメールの作成画面を開きます。

通常の全員へ返信との違いはこちらです。

  1. 定型文をセット(お疲れ様です~)
  2. BCCに自分のアドレスをセット

まぁ要するに「返信メール」マクロの全員版です。

'
' Global
' ★ソースの先頭に記述してください。
' ★他のソースで既に書いている場合、無視してOKです。
'
Const BLANK_MSG_TXT = "" & _
          vbNewLine & _
          vbNewLine & _
          "お疲れ様です。" & _
          vbNewLine & _
          "xxxです。" & vbNewLine & vbNewLine & vbNewLine & _
          "以上、宜しくお願い致します。" & vbNewLine & vbNewLine

'----------------------------------------

'
' 全返信メール
'
Public Sub AllReply()
    ' メールアイテム
    Dim msg As MailItem
    
     ' メールをどのように開いているか確認 ------------------
    If TypeName(Application.ActiveWindow) = "Inspector" Then
        ' メールを別ウィンドウとして開いている場合
        Set objItem = ActiveInspector.CurrentItem
    Else
        ' メールを閲覧ウィンドウで開いている場合
        Set objItem = ActiveExplorer.Selection(1)
    End If
    
    ' 選択しているメールアイテムの返信メールを取得 ---------
    Set msg = objItem.ReplyAll
    
    ' メールのカスタマイズ ---------------------------------
   
    ' BCCに自身のメール挿入
    msg.BCC = "my_address@jp"
    
    ' 本文の挿入
    msg.Body = BLANK_MSG_TXT & Right(msg.Body, Len(msg.Body) - 4)
    
    ' 作成返信メールの表示 ---------------------------------
    msg.Display
End Sub

あとがき

正直大したマクロではないのですが、これだけで結構メール作成が楽になります。
毎回定型文書いたり、コピペしたりって面倒じゃないですか。

2手で終わる作業を、1手にしたいと思うような面倒くさがりなのです…
でも1日に何回も行う作業が、2手から1手、もしくはそれ以上に削減されたら、作業時間が単純に半分やそれ以下になる訳ですから。

気になった方は、マクロやプログラミングに足を踏み入れてみませんか?