このVBAコードを使用してAccessデータベースで電子メールを送信し、MicrosoftOutlook14.0オブジェクトライブラリも参照しました。
コードを手動で実行すると、すべてが完全に機能します。ただし、Windowsタスクスケジュールからマクロを実行すると、アクセスが失敗します。このメッセージが表示されます:
ランタイムエラー「429」ActiveXコンポーネントはオブジェクトを作成できません
タスクスケジューラの[アクション]タブで、次のようにマクロを参照しています: "C:\ Program Files \ Microsoft Office \ Office14 \ MSACCESS.EXE" "C:\ mydata \ Database \ mydatabase.accdb" / X RunMyMacro
以下のスクリーンショットに示されているように、エラーはこのコードを指しているようです。
コード:
Dim strEmailBody As String
Sub emailNotification()
Dim oFolder As Outlook.MAPIFolder
Dim oItem As Outlook.MailItem
Dim oOutlook As New Outlook.Application
Dim MoOutlook As Outlook.NameSpace
Set MoOutlook = oOutlook.GetNamespace("MAPI")
Set oFolder = MoOutlook.GetDefaultFolder(olFolderOutbox)
Set oItem = oFolder.Items.Add(olMailItem)
With oItem
.Recipients.Add ("tome@me.com")
.Subject = "my notification"
.Body = strEmailBody
.Importance = olImportanceHigh
.Send
End With
Set oFolder = Nothing
End Sub
スクリーンショット: