0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Outlookのマクロを活用して日付を自動挿入する方法

Posted at

1.はじめに

日報メールや請求書メールなど、メールの件名や本文に日付を挿入する機会はよくありますよね。手動で日付を入力すると手間がかかり、誤った日付を入力してしまう可能性もあります。(私は日報送信で日付ミスをした経験があります😢)そこで、この記事ではOutlook VBAを使用して、日付の自動入力機能を実装します!

2. マクロを作成する

マクロは、アプリケーションソフトであらかじめ操作手順を設定しておくことによって、必要なときに簡単に実行させることができる機能のことです。

2.1 メールテンプレートを作成する

まず、用意するのは「.oft」という形式のメールテンプレートです。これを使えば、ある程度決まりきったフォーマットのメールを手軽に作成できます。

2.1.1 メールテンプレートを作成する

通常のメール作成時と同じようにメールのテンプレートを作成しましょう。
宛先、件名、本文等の必要な情報を入力してください。この時に件名と本文の日付を入力したい箇所には、それぞれ「todaySubject」、「todayBody」と入力しておきます。
image.png
引用

Outlookに署名設定をしている場合はテンプレートには署名を入れないようにしましょう。テンプレートを使用するときに署名が自動挿入されて重複してしまいます。

2.1.2 「.oft」として保存する

image.png
引用
メニューの中の「ファイル」をクリックします。

image.png
引用
「名前を付けて保存」をクリックします。

image.png引用
「ファイルの種類」から「Outlookテンプレート(*.oft)」を選択します。選択するとテンプレートの保存フォルダが自動的に選択されます。デフォルトの保存場所は下記です。

%userprofile%\AppData\Roaming\Microsoft\Templates

デフォルトのフォルダに保存してもいいですし、お好きなフォルダに保存しても大丈夫です。ただし、この後にファイルのパスを入力する場面があるため、パスを覚えておいてください。

2.2 VBAコードを作成する

VBA(Visual Basic for Applications)は、マクロを記述するための言語です。

2.2.1 Outlook VBAを使う設定をする

Outlookでは、デフォルトでセキュリティのためにマクロが無効になっています。マクロの実行を許可するためには、「マクロの設定」からセキュリティレベルを変更する必要があります。
image.png
Outlookを起動して画面左上の「ファイル」をクリックします。
image.png
引用

「オプション」をクリックします。
image.png引用
「トラストセンター」をクリックし「トラストセンターの設定」をクリックします。
image.png引用
左側メニューの「マクロの設定」をクリックしセキュリティレベルを選択します。

「すべてのマクロに対して警告を表示する」オプションを選択すると、マクロを実行するたびに警告のポップアップが表示されます。これにより、意図しないマクロが自動実行されるリスクを軽減できますが、煩わしく感じるかもしれません。
一方、「すべてのマクロを有効にする」オプションを選択すると、どんなマクロも警告なしで実行することができます。この設定では、マクロを頻繁に使用する場合に便利ですが、警告が表示されないため、意図しないマクロが自動実行されるリスクもあります。

どちらかご自身で選択してください!ちなみに私は「すべてのマクロを有効にする」を選択しています!

最後にoutlookを再起動して設定完了です。

2.2.2VBEを開いてVBAコードを作成する。

ショートカットキーAlt+F11を押下してVBEを開きます。
左側の「Project1」を左クリックし、「挿入」「標準モジュール」と順に選択をします。

以下のコードをコピペしてください!
また、ご自身の環境のotfファイルのパスを入力してください。

Sub Insert_Date1()
    '''件名と本文に今日の日付を挿入します。
    '''
    '''
    
    '■2.今日の日付をFormat関数でフォーマットします。
    Dim today As String
    Dim month_and_day As String
    today = Format(Date, "(yyyy/mm/dd)")
    month_and_day = Format(Date, "mm月dd日")
    
    '■3.メールテンプレートを呼び出す処理
    Dim objItem As MailItem
    '下記にメールテンプレートのパスを入力してください
    Set objItem = Application.CreateItemFromTemplate("C:\Users\user\AppData\Roaming\Microsoft\Templates\日報.oft")
    
    '■4.件名と本文にフォーマットした日付文字列を置換します。
    objItem.Subject = Replace(objItem.Subject, "todaySubject", today)
    objItem.Body = Replace(objItem.Body, "todayBody", month_and_day)
    objItem.Display '添付ファイル付けたあとにメールテンプレートを表示します。
End Sub

ショートカットキーCtrl+Sを押下してマクロを保存してVBEを閉じます。

3. マクロを実行する

ショートカットキーAlt+F8を押下してマクロ一覧を表示します。
「Insert_Date1」を実行します。

日付が自動的に挿入されたメールが開きます!!
必要に応じて編集してから送信ボタンをクリックしてメールを送信してください。

おわりに

この記事では、Outlook VBAを使用して日付の自動入力機能を実装する手順を紹介しました。この自動入力機能により、手作業の手間やミスを軽減しながら、効率的なメール作成を実現できます。ぜひ試してみてください!

参考

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?