質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Outlook

Microsoft OutlookはMicrosoft Officeの一部として組み込まれている、のユーザー管理とメーラーの機能を持ち合わせたソフトウェアです。

Q&A

解決済

2回答

2927閲覧

[VBA][Outlook]CDO.Messageでエイリアスに紐づくメールアドレスに送信したい

woria

総合スコア36

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Outlook

Microsoft OutlookはMicrosoft Officeの一部として組み込まれている、のユーザー管理とメーラーの機能を持ち合わせたソフトウェアです。

0グッド

0クリップ

投稿2019/12/18 03:12

編集2019/12/18 05:20

前提

ExcelVBAのCDO.Messageを使って差出人を指定し、Excelで計算された、社員番号に紐づくデータを、社員番号に対応したメールアドレスに送信したいです。
ただし、現在社員番号に対応するメールアドレスのマスターは存在しません。
各社員のメールアドレスにはエイリアスが登録されており、Outlook上で宛先に7桁の番号を入れることで、その人に送信することは出来ます。

やりたいこと

次のいずれか1つです。

  • Outlookから自社員のメールアドレスとエイリアスを出力する
  • Outlookでエイリアスを経由して宛先を指定するのと同じことをCDO.Messageで行いたい

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

https://qiita.com/Q11Q/items/92c1954e4dcdcc7fa598
ExcelでOutlookのアドレス帳を会社名で検索して、メールアドレスを抜き出す

ずれていたらすみません

投稿2020/02/09 11:08

sinzou

総合スコア392

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

自己解決

参考:Excel vba outlookのExchangeのグローバルアドレス一覧から特定の肩書から名前を検索するマクロ

Excelに”DATA"という名前のテーブルを用意し、マクロを実行すれば、対象のエイリアスとメールアドレスを出力できました。

vba

1Sub GetNameFromOlGlobalAddress() 2 3 Dim ls As ListObject: Set ls = Range("DATA").ListObject 4 If Not ls.DataBodyRange Is Nothing Then ls.DataBodyRange.Delete 5 6 ' Create an Outlook application. 7 Dim oApp As Outlook.Application: Set oApp = CreateObject("Outlook.Application") 8 Dim oNS As Outlook.Namespace: Set oNS = GetNamespace("MAPI") 9 10 Dim colAL As Outlook.AddressLists ' Outlook.AddressLists 11 Dim oAL As Outlook.AddressList ' Outlook.AddressList 12 Dim colAE As Outlook.AddressEntries 13 Dim oAE As Outlook.addressEntry 14 Dim AddressLists As Outlook.AddressLists 15 16 ' Outlook.AddressEntries 17 Dim addressEntry As Object ' Outlook.AddressEntry 18 Dim oExuser As Outlook.ExchangeUser 19 Set AddressLists = oNS.AddressLists 20 21 '確認して変更する 22 Set oAL = oNS.AddressLists.Item("GALの名前") 'GALを絞り込む 'Set oAL = oNS.AddressLists.Item("JPNTOKYO_0001新宿支店") 23 Set colAE = oAL.AddressEntries 24 25 For Each oAE In colAE 26 Set oExuser = oAE.GetExchangeUser 27 If oAE.AddressEntryUserType = olExchangeUserAddressEntry Then 28 29 Set oExuser = oAE.GetExchangeUser 30 If oExuser.OfficeLocation = "hogefuga Head Office" Then 31 With oExuser 32 ls.ListRows.Add.Range.Value = Array(.Alias, .PrimarySmtpAddress, .BusinessTelephoneNumber) 33 End With 34 End If 35 End If 36 Next 37End Sub

投稿2019/12/19 06:47

woria

総合スコア36

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問