Microsoft 製品に組み込まれている Visual Basic の実装。
私はExcel2016を持たないので
Windows8.1+Excel2013+Outlook2013で試してみましたが、
ズレもなく編集もできましたので
コードに問題は無いようです。
Excel2016の人の回答をお待ちください。
このブラウザーはサポートされなくなりました。
Microsoft Edge にアップグレードすると、最新の機能、セキュリティ更新プログラム、およびテクニカル サポートを利用できます。
使用PC:Surface Pro
OS:Windows 10 Pro
Officeバージョン:Office 365 ProPlus(Excel 2016)
質問:「.Attachments.Add」はExcel 2016で使用可能でしょうか?
はじめまして、ご担当者様、どうぞ宜しくお願い致します。
下記のコードをExcelのVBAで作成し、リストのアドレス宛ての添付有りメールを自動で作成しています。
=======================================
Option Explicit
Sub Macro1()
'---各種宣言---
Dim ate, cc, title, body, name As String
Dim i
Dim outlookObj As Outlook.Application
Dim mailItemObj As Outlook.MailItem
i = 1
Do While Sheets("list").Cells(i, 1) <> ""
'---To~添付まで情報を取得---
ate = Sheets("list").Cells(i, 1)
cc = Sheets("main").Cells(1, 2)
title = Sheets("main").Cells(2, 2)
body = Sheets("main").Cells(3, 2)
name = "添付ファイルのアドレス"
'---メール作成---
Set outlookObj = CreateObject("Outlook.Application")
Set mailItemObj = outlookObj.CreateItem(olMailItem)
mailItemObj.To = ate
mailItemObj.cc = cc
mailItemObj.Subject = title
mailItemObj.body = body
mailItemObj.Attachments.Add name
mailItemObj.Display
Set outlookObj = Nothing
Set mailItemObj = Nothing
'---次の宛先へ---
i = i + 1
Loop
End Sub
=======================================
実行をすると、メールは希望通り作成されるのですが、表示されたメールを編集することができません。
作成されたメールの上の少しずれた位置にテキストボックス(おそらくTo~宛先)が配置され、そのテキストボックスにしかカーソルが合いません。
なお、「.Attachments.Add」関連の一式をコメントアウトし、添付無しのバージョンで作成をすると、問題は起きません。
これは、上記コードに問題が有るためでしょうか?
もしくは、Office 2016では「.Attachments.Add」が使用できないということでしょうか?
お手数をお掛け致しますが、何卒宜しくお願い致します。
Microsoft 製品に組み込まれている Visual Basic の実装。
ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。
質問作成者が受け入れた回答
質問作成者が受け入れた回答
当方、Office2016+Windows10 1803の環境です。
確認したコードと画像をポストします。
当方、指摘現象起きません。
Sub Macro1()
'---各種宣言---
Dim ate, cc, title, body, name As String
Dim i
Dim outlookObj As Outlook.Application
Dim mailItemObj As Outlook.MailItem
i = 1
Do While Sheets("list").Cells(i, 1) <> ""
'---To~添付まで情報を取得---
ate = Sheets("list").Cells(i, 1)
cc = Sheets("main").Cells(1, 2)
title = Sheets("main").Cells(2, 2)
body = Sheets("main").Cells(3, 2)
name = "D:\wk\aaa.xlsx"
'---メール作成---
Set outlookObj = CreateObject("Outlook.Application")
Set mailItemObj = outlookObj.CreateItem(olMailItem)
mailItemObj.To = ate
mailItemObj.cc = cc
mailItemObj.Subject = title
mailItemObj.body = body
mailItemObj.Attachments.Add name
mailItemObj.Display
Set outlookObj = Nothing
Set mailItemObj = Nothing
'---次の宛先へ---
i = i + 1
Loop
End Sub
n.hojo様、初めまして。
ご回答誠にありがとうございます。
Office2016+Windows10 1803で問題なしとのこと、テストいただきありがとうございます。
上記結果を受けて、社内で同環境(Surface+Win10+Office365)の方2名、他環境の方2名に同様のコードを実行いただきました。
結果、やはり同環境では同様にメールが編集できず、ズレが発生しているようでした。
また、他環境(Win7+Office2010)では問題ありませんでした。
(もちろん、参照設定はOfficeのバージョンごとに切り替えています)
結果からみると、Surface上でコードを実行することに問題があるのかもしれません。
貴重な時間をいただき、誠にありがとうございました。