次の方法で共有

.Attachments.Add使用時のoutlookのズレについて

Anonymous
2018-06-13T04:51:57+00:00

使用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」が使用できないということでしょうか?

お手数をお掛け致しますが、何卒宜しくお願い致します。

開発者テクノロジ | Visual Basic for Applications

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。

0 件のコメント コメントはありません

質問作成者が受け入れた回答

Anonymous
2018-06-13T20:28:26+00:00

私はExcel2016を持たないので

Windows8.1+Excel2013+Outlook2013で試してみましたが、

ズレもなく編集もできましたので

コードに問題は無いようです。

Excel2016の人の回答をお待ちください。

この回答は役に立ちましたか?

2 人がこの回答が役に立ったと思いました。
0 件のコメント コメントはありません

質問作成者が受け入れた回答

Anonymous
2018-06-14T15:10:59+00:00

当方、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

この回答は役に立ちましたか?

1 人がこの回答が役に立ったと思いました。
0 件のコメント コメントはありません

4 件の追加の回答

並べ替え方法: 最も役に立つ
  1. Anonymous
    2018-06-15T00:32:48+00:00

    n.hojo様、初めまして。

    ご回答誠にありがとうございます。

    Office2016+Windows10 1803で問題なしとのこと、テストいただきありがとうございます。

    上記結果を受けて、社内で同環境(Surface+Win10+Office365)の方2名、他環境の方2名に同様のコードを実行いただきました。

    結果、やはり同環境では同様にメールが編集できず、ズレが発生しているようでした。

    また、他環境(Win7+Office2010)では問題ありませんでした。

    (もちろん、参照設定はOfficeのバージョンごとに切り替えています)

    結果からみると、Surface上でコードを実行することに問題があるのかもしれません。

    貴重な時間をいただき、誠にありがとうございました。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  2. Anonymous
    2018-06-14T00:42:53+00:00

    はじめましてTETUO様、ご回答ありがとうございます。

    コードのご確認ありがとうございました。

    また、別のバージョンでのご確認もありがとうございました。

    こちらも、別の機体がありましたので同様のコードを実行してみました。

    OS:Windows 7 Enterprise

    Officeバージョン:Excel 2010

    やはり、問題なく実行でき、メールの編集もできてズレも無いようでした。

    おとなしく、Office2016をご使用の方をお待ちします。

    貴重なお時間をいただき、ありがとうございました。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  3. Anonymous
    2018-06-13T06:31:52+00:00

    文章では状況がわかりづらいかと思いましたので、画像を補足として追加いたします。

    本来作りたかったメールは表示されますが、それがまったく機能せず、宛先~タイトルのテキストボックスがズレて表示されています。

    宜しくお願いいたします。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません