質問するログイン新規登録

質問編集履歴

1

ソースコードを追記

2018/06/27 09:43

投稿

fishStory
fishStory

スコア10

title CHANGED
File without changes
body CHANGED
@@ -6,35 +6,86 @@
6
6
  ExcelのVBAで、OUTLOOL2013のメッセージファイル(.msg)から送信元アドレスを取得しようとしています。
7
7
  今回は受信トレイのメールからではなく、ローカルの任意の場所にコピーしたメッセージファイル(.msg)からデータを取り出したいです。
8
8
 
9
- ### 試したこと
9
+ ### 該当のソースコード
10
+ ```VBA
11
+ Sub get_msg()
10
12
 
11
- 以下のようなプロパティを利用しても、メールアドレスではなく名前に変換されてしまいます。
12
- SentOnBehalfOfName
13
- Sender
14
13
 
14
+ Dim OL As Object
15
+ Dim msg As Object
16
+ Dim intNo As Integer
17
+ Dim strFileName As String
18
+ Dim strOutFileName As String
15
- また、「SenderEmailAddress」を使用しても、以下のように組織にあるExchangeサーバの情報しか取れません。
19
+ Dim SaveFolderPath As String
16
- /O=xxxx EXCHANGE ORGANIZATION/OU=EXCHANGE ADMINISTRATIVE GROUP (FYDIBOHF23SPDLT)/CN=RECIPIENTS/CN=YAMADA.TARO018
20
+ Dim AttFile_excel As String
21
+ Dim AttFile_text As String
17
22
 
23
+ ' テキストを出力するファイルを設定(※要変更)
24
+ strFileName = "C:\Temp\明日の予定について.msg"
25
+ ' テキストを出力するファイルを設定(※要変更)
26
+ strOutFileName = "C:\Temp\sample.txt"
27
+ ' 添付ファイルの保存先フォルダ(※要変更)
18
- どうすれば、名前として変換されているメールアドレスを取得できるでしょうか。
28
+ SaveFolderPath = "C:\Temp\"
19
- プロパティついは、以下MSDNを参考にしてます。
29
+ 'メール添付されているエクセルファイル
20
- https://msdn.microsoft.com/ja-jp/library/office/ff861252.aspx
30
+ AttFile_excel = "C:\Temp\サンプルエクセル.xlsx"
31
+ 'メールに添付されているテキストファイル
32
+ AttFile_text = "C:\Temp\サンプルテキスト.txt"
21
33
 
22
- ### 補足情報(FW/ツールョンなど)
34
+ 'Outlookアプリケョンオブジェクトを作成する
35
+ Set OL = CreateObject("Outlook.Application")
36
+ Set msg = OL.CreateItemFromTemplate(strFileName)
37
+
23
38
 
24
- [現在取得しているプロパティ値]
39
+ intNo = FileSystem.FreeFile() ' フリーファイルNoを取得
40
+ Open strOutFileName For Output As #intNo ' 上書きモードでファイルをオープン
41
+
25
42
 
26
- SenderName: Yamada, Taro/山田 太郎 ←★ここをメールアドレスとして取得したい
27
- SenderEmailAddress: /O=xxxx EXCHANGE ORGANIZATION/OU=EXCHANGE ADMINISTRATIVE GROUP (FYDIBOHF23SPDLT)/CN=RECIPIENTS/CN=YAMADA.TARO018
28
- SentOnBehalfOfName: Yamada, Taro/山田 太郎
43
+ Print #intNo, "SentOnBehalfOfName: " & msg.SentOnBehalfOfName
29
- Sender:Yamada, Taro/山田 太郎
44
+ Print #intNo, "SenderName: " & msg.SenderName
30
- ReceivedOnBehalfOfName: Suzuki, Hanako/鈴木 花子
45
+ Print #intNo, "ReceivedOnBehalfOfName: " & msg.ReceivedOnBehalfOfName
46
+ Print #intNo, "ReplyRecipientNames: " & msg.ReplyRecipientNames
31
- To: Suzuki, Hanako/鈴木 花子
47
+ Print #intNo, "To: " & msg.To
32
- CC:
48
+ Print #intNo, "CC: " & msg.CC
33
- BCC:
49
+ Print #intNo, "BCC: " & msg.Bcc
50
+ Print #intNo, "Subject: " & msg.Subject
51
+ Print #intNo, "Body: " & msg.Body
52
+
53
+ Close #intNo ' ファイルをクローズ
34
54
 
55
+ Set msg = Nothing
56
+ Set OL = Nothing
57
+
58
+ End Sub
59
+ ```
60
+
61
+ ### 試したこと
62
+
63
+ [実行結果]
64
+ `SentOnBehalfOfName`: Yamada, Taro/山田 太郎  ←★ここをメールアドレスとして取得したい
65
+ `SenderName`: Yamada, Taro/山田 太郎
66
+ `ReceivedOnBehalfOfName`: Suzuki, Hanako/鈴木 花子
67
+ `ReplyRecipientNames`:
68
+ `To`: Suzuki, Hanako/鈴木 花子
69
+ `CC`:
70
+ `BCC`:
35
- Subject: 明日の予定について
71
+ `Subject`: 明日の予定について
36
- Body:
72
+ `Body`:
37
73
  担当者様
38
74
 
39
75
  お世話になっております。
40
- 明日の出発時間は何時でしょうか。
76
+ 明日の出発時間は何時でしょうか。
77
+ ---
78
+
79
+
80
+ 以下のようなプロパティを利用しても、メールアドレスではなく名前に変換されてしまいます。
81
+ `SentOnBehalfOfName`
82
+ `Sender`
83
+
84
+ `SenderEmailAddress`を使用しても、以下のように組織にあるExchangeサーバの情報しか取れません。
85
+ /O=xxxx EXCHANGE ORGANIZATION/OU=EXCHANGE ADMINISTRATIVE GROUP (FYDIBOHF23SPDLT)/CN=RECIPIENTS/CN=YAMADA.TARO018
86
+
87
+ どうすれば、名前として変換されているメールアドレスを取得できるでしょうか。
88
+ プロパティについては、以下MSDNを参考にしています。
89
+ [MailItem メンバー (Outlook)](https://msdn.microsoft.com/ja-jp/library/office/ff861252.aspx)
90
+
91
+ ### 補足情報(FW/ツールのバージョンなど)