非プログラマーでもできる!業務の自動化

Outlookメールで登録したグループ宛先をワンクリック入力|VBAマクロ

当ページのリンクの一部に広告が含まれています。

課題・悩み「Outlookで登録した宛先グループを簡単に呼び出したい」

解決策「Outlookでグループの宛先を入力するVBAマクロのコード」を解説

Outlookには、複数の連絡先をグループとして登録して、一括で宛先に出力できる機能があります。

複数の宛先をいちいち入力する必要がなくなるため大変便利ですが、宛先グループが深い階層に登録されているため、たどり着くまでに複数のフォルダを選択して行く必要があり少し面倒。

そこで、OutlookのVBAマクロを作成して、クイックアクセスツールバーに登録することで、1クリックで宛先グループを入力できるようにしました。

この記事では

【Outlookでグループの宛先を入力するVBAマクロのコード】を図解で解説しています。

目次

Outlookで登録した連絡先グループを呼び出して宛先にするVBAマクロのコード

このVBAマクロは、Microsoft Outlookの連絡先グループから特定のグループを見つけ、そのグループに属するメンバー全員を選択されたメールの宛先に追加するためのものです。

すなわち、Outlookの連絡先にあるグループを使って、メールの宛先を一度に設定することができます。

Sub AddGroupMembersToMailRecipient()
    Dim olApp As Outlook.Application
    Dim olNamespace As Outlook.NameSpace
    Dim olFolder As Outlook.MAPIFolder
    Dim Item As Object
    Dim olGroup As Outlook.DistListItem
    Dim olMail As Outlook.MailItem
    Dim groupName As String
    Dim found As Boolean

    ' グループ名を設定(適切なグループ名を指定)
    groupName = "YourGroupName"  ' 例: "MarketingTeam" など

    ' Outlookオブジェクトの初期化
    Set olApp = Outlook.Application
    Set olNamespace = olApp.GetNamespace("MAPI")
    Set olFolder = olNamespace.GetDefaultFolder(olFolderContacts)
    found = False

    ' 連絡先フォルダーを検索してグループを探す
    For Each Item In olFolder.Items
        If TypeName(Item) = "DistListItem" Then
            Set olGroup = Item
            If olGroup.DLName = groupName Then
                found = True
                Exit For
            End If
        End If
    Next Item

    If found Then
        ' 選択されているメールアイテムを取得
        If TypeOf olApp.ActiveWindow Is Outlook.Inspector Then
            Set olMail = olApp.ActiveInspector.CurrentItem
        ElseIf TypeOf olApp.ActiveWindow Is Outlook.Explorer Then
            Set olMail = olApp.ActiveExplorer.Selection.Item(1)
        End If

        ' メールの宛先にグループメンバーを追加
        If Not olMail Is Nothing Then
            For i = 1 To olGroup.MemberCount
                olMail.Recipients.Add(olGroup.GetMember(i).Address)
            Next i
            olMail.Recipients.ResolveAll
            olMail.Save
        End If
    Else
        MsgBox "指定された連絡先グループが見つかりません。"
    End If

    ' オブジェクトの解放
    Set olMail = Nothing
    Set olFolder = Nothing
    Set olNamespace = Nothing
    Set olApp = Nothing
End Sub

Outlookで登録した連絡先グループを呼び出して宛先にするVBAマクロのコード

  • コードのカスタマイズ箇所
  • 処理ごとの解説

コードのカスタマイズ箇所

このコードは、特にグループ名の部分が重要で、適切なグループ名に変更することで、望む動作を実現できます。

また、特定のメールアイテムに対して操作を行いたい場合や、宛先の種類(To, CC, BCC)を変更したい場合は、それぞれの部分を適宜調整する必要があります。

コードのカスタマイズ箇所

  • グループ名の設定
  • メールアイテムの選択
  • 宛先への追加方法
  • Outlookオブジェクトの初期化
  • グループの検索
  • 選択されたメールの取得

グループ名の設定

このコードでは、yourgroupname_という文字列を変更して、操作したい連絡先グループの名前に合わせる必要があります。

実際の連絡先グループ名に応じて、この部分を書き換えてください。

groupName = "YourGroupName"

メールアイテムの選択

コードは現在Outlookで選択されているメールアイテムを操作対象とします。

別のメールアイテムを操作したい場合は、この部分を変更する必要があります。

一般的には、この部分の変更は必要ありませんが、特定のメールを指定したい場合は変更が必要です。

Set olMail = olApp.ActiveInspector.CurrentItem  Set olMail = olApp.ActiveExplorer.Selection.Item(1)

宛先への追加方法

グループ内の連絡先をメールの宛先に追加する方法を変更することも可能です。

例えば、CCやBCCに追加したい場合など、宛先の種類を変更する必要がある場合は、この部分を変更します。

olMail.Recipients.Add(olGroup.GetMember(i).Address)

処理ごとの解説

処理ごとの解説

  • Outlookオブジェクトの初期化
  • グループの検索
  • 選択されたメールの取得
  • メール宛先への追加
  • オブジェクトの解放

Outlookオブジェクトの初期化

outlookアプリケーションと必要なオブジェクトを準備します。

これにより、outlookの連絡先やメールにアクセスできます。

Set olApp = Outlook.Application
Set olNamespace = olApp.GetNamespace("MAPI")
Set olFolder = olNamespace.GetDefaultFolder(olFolderContacts)

グループの検索

指定された名前の連絡先グループを連絡先フォルダーから探します。

For Each Item In olFolder.Items
If TypeName(Item) = "DistListItem" Then
Set olGroup = Item
If olGroup.DLName = groupName Then
found = True
Exit For
End If
End If
Next Item

選択されたメールの取得

現在Outlookで選択されているメールを取得します。

If TypeOf olApp.ActiveWindow Is Outlook.Inspector Then
Set olMail = olApp.ActiveInspector.CurrentItem
ElseIf TypeOf olApp.ActiveWindow Is Outlook.Explorer Then
Set olMail = olApp.ActiveExplorer.Selection.Item(1)
End If

メール宛先への追加

検索したグループの各メンバーをメールの宛先に追加します。

If Not olMail Is Nothing Then
For i = 1 To olGroup.MemberCount
olMail.Recipients.Add(olGroup.GetMember(i).Address)
Next i
olMail.Recipients.ResolveAll
olMail.Save
End If

オブジェクトの解放

使用したオブジェクトを解放し、メモリをクリアします。

Set olMail = Nothing
Set olFolder = Nothing
Set olNamespace = Nothing
Set olApp = Nothing

注意点

注意点

  • データ量
  • 操作の取り消し
  • セキュリティ設定
  • Outlookを開く
  • オプションの選択
  • セキュリティセンターの選択

データ量

連絡先が非常に多い場合、グループの検索に時間がかかる可能性があります。

操作の取り消し

VBAマクロで実行した操作は自動的に保存されるため、元に戻すことはできません。

慎重に操作してください。

セキュリティ設定

Outlookではマクロの実行にセキュリティ設定の変更が必要な場合があります。

不明な場合は、システム管理者に相談してください。

必要な環境設定

OutlookのVBAマクロを使用するためには、以下の環境設定が必要です。

これにより、OutlookでVBAマクロを使用する準備が整います。

ただし、マクロの使用はセキュリティリスクを伴うことがあるため、必ず信頼できるマクロのみを使用してください。

必要な環境設定

  • Outlookを開く
  • オプションの選択
  • セキュリティセンターの選択
  • マクロの設定変更
  • Outlookの再起動

Outlookを開く

Outlookを開きます。

オプションの選択

[ファイル] メニューから [オプション] を選択します。

セキュリティセンターの選択

[セキュリティセンター] をクリックし、[セキュリティセンターの設定] を選択します。

マクロの設定変更

[マクロの設定] で「マクロをすべて有効にする」または「通知を表示してマクロを有効にする」を選択します(セキュリティ上のリスクがあるため、慎重に選択してください)。

Outlookの再起動

設定を保存し、Outlookを再起動します。

まとめ:VBAマクロでメール作成の効率アップ

VBAマクロでメール作成の効率アップ

コピペでOK!Outlook VBAのコード一覧

Outlook VBAの基本

Outlookの操作

Outlookメール作成

Outlook メール本文作成

Outlook メール管理

Outlook 予定表

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次