下記コードを実行すると
ストアアプリ版Officeの環境下のみ下図のエラーが発生します。
(デスクトップ版では正常に動作することを確認しています。)
VBA
1Enum col '1以降の数値を省略した場合は+1される 2 宛先 = 1 3 社名 4 担当者名 5End Enum 6 7Sub Outlookメール一括作成() 8 9 Dim OutlookObj As Outlook.Application 'Outlookオブジェクトの作成 10 Set OutlookObj = CreateObject("Outlook.Application") 11 12 Dim r As Long 13 For r = 2 To Cells(1, 1).End(xlDown).Row '対象人数分の処理を繰り返す 14 15 Dim mailItemObj As Outlook.MailItem 'メールアイテムオブジェクト作成 16 Set mailItemObj = OutlookObj.CreateItem(olMailItem) 17 18 Dim mailBody As String 19 mailBody = CreateMailBody(r) 'メール本文作成 20 21 With mailItemObj 'メールアイテム作成 22 .To = Cells(r, col.宛先).Value 'Toを設定 23 .subject = Cells(1, "H").Value '件名を設定 24 .Body = mailBody '本文を設定 25 End With 26 27 Dim attached As String 28 Dim myattachments As Outlook.Attachments 'Outlookで使用するオブジェクト生成 29 Set myattachments = mailItemObj.Attachments 30 attached = Cells(33, "H").Value '添付ファイル 31 myattachments.Add attached 32 33 mailItemObj.Display '下書きを表示 34 35 '次のメールアイテムを作成するためいったん破棄 36 Set mailItemObj = Nothing 37 38 Next r 39 40End Sub 41 42Function CreateMailBody(r As Long) As String 43' 機能:Excelシート上の指定行番号のメール本文を作成する 44 45 Dim sName As String, DayOfUse As String, price As Long 46 CName = Cells(r, col.社名).Value 47 sName = Cells(r, col.担当者名).Value 48 49 Dim sign As String '署名 50 sign = Cells(25, "H").Value 51 52 Dim mBody As String 'メール本文 53 mBody = Cells(2, "H").Value '初期値を設定 54 mBody = Replace(mBody, "(社名)", CName) 55 mBody = Replace(mBody, "(担当者名)", sName) 56 mBody = mBody & vbCrLf & vbCrLf & sign '末尾に署名を付与 57 58 CreateMailBody = mBody 59 60End Function 61
<補足> 情報不足ですみませんでした。追記いたします。
VBA
1 Dim attached As String 2 Dim myattachments As Outlook.Attachments 'Outlookで使用するオブジェクト生成 3 Set myattachments = mailItemObj.Attachments 4 attached = Cells(33, "H").Value '添付ファイル 5 '↑ここで処理がとまり、エラーが発生します。 6 7 myattachments.Add attached
ストアアプリ側のセキュリティ的な兼ね合いだと思われるので、VBA側での対処は難しいと思います(調べればストアアプリ版のOffice、とくにOutlookの挙動が変わっているという話がたくさん出てきます)
また、純粋な質問の仕方として、エラーメッセージだけでなく「どの行でエラーが起きているか」、「エラーが起きた行の操作に関連する変数の値」あたりの情報も欲しいところです。
ご回答・ご指摘ありがとうございます。
エラーコードを調べても説明がなく行き詰っていました。
補足しましたのでよろしくお願いいたします。
String型の変数`attached`へのセルの値の代入でエラーになっている(デバッグ時に黄色になっている)ということでよろしいですか?
その位置のエラーで、そのエラーメッセージがでるとは考えにくいのですが…
おっしゃる通りです。
ストア版のみこのエラーがでるので、ソースが間違っている可能性は低いと思っています。
officeの詳細設定、またはWindowsのサービス又はセキュリティ等の設定で回避できるのか…
調べても同様のケースがなく完全に行き詰っています。。。
お付き合いいただきましてありがとうございます。
あなたの回答
tips
プレビュー