tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルVB.netからOutlook2003でメール送信
記事No1398
投稿日: 2005/02/14(Mon) 18:55
投稿者すー
[OSのVer]:WindowsXP Pro
[VBのVer]:VB.NET
[その他]:Outlook2003


はじめまして。すーといいます。
現在、上記の環境にて抽出した顧客に対するメール送信を行うプログラムを開発中です。
まず、一度試してみようとMSDNライブラリにあったようにやってみたのですが、ビルドエラーになり
実行できません。


Sorce >------------------------*
*参照設定に「Microsoft Outlook 11.0 Object Library」を追加しています。

'TO DO: If you use the Microsoft Outlook 11.0 Object Library, uncomment the following line.
Imports Outlook = Microsoft.Office.Interop.Outlook

Module Module1

    Sub Main()
        ' Create an Outlook application.
        Dim oApp As Outlook._Application = New Outlook.Application

        ' Create the name space.
        Dim oNS As Outlook._NameSpace = oApp.GetNamespace("mapi")

        ' Create a new MailItem.
        Dim oMsg As Outlook._MailItem
        oMsg = oApp.CreateItem(Outlook.OlItemType.olMailItem)     <---- Err

        Try

            oMsg.Subject = "Test Subject"
            oMsg.Body = "Test Body"
            oMsg.To = "Test@***.co.jp"
            oMsg.Send()

        Catch ex As Exception
            Console.WriteLine(ex.Message)
        End Try

        ' Clean up.
        oMsg = Nothing
        oNS = Nothing
        oApp = Nothing
    End Sub

End Module

Sorce >------------------------*

上記の「Err」の部分で、以下のビルドエラーが出ます。
 「Option Strict On で 'System.Object' から
  'Microsoft.Office.Interop.Outlook._MailItem' への暗黙的な変換はできません。」

参照設定が「Microsoft Outlook 10.0 Object Library」ではないからかと思ったのですが、
「Microsoft Outlook 11.0 Object Library」しか選択できません。
いろいろ検索してみたりしたのですが、検索してもあまりヒットせず途方にくれています。
とても簡単なところでつまづいているのかもしれませんが、
お力を貸していただけたらと思います。

[ツリー表示へ]
タイトルRe: VB.netからOutlook2003でメール送信
記事No1399
投稿日: 2005/02/14(Mon) 20:08
投稿者魔界の仮面弁士
> oMsg = oApp.CreateItem(Outlook.OlItemType.olMailItem)     <---- Err

>  「Option Strict On で 'System.Object' から
>   'Microsoft.Office.Interop.Outlook._MailItem' への暗黙的な変換はできません。」

データ型が一致しない、という警告ですよね。

「暗黙的な変換」が駄目ならば、CTypeやDirectCastなどで、
「明示的に変換」してみてください。

[ツリー表示へ]
タイトルRe^2: VB.netからOutlook2003でメール送信
記事No1405
投稿日: 2005/02/15(Tue) 10:26
投稿者すー
魔界の仮面弁士 様 大変ありがとうございます!

以下のように変更し、メールを送信することができました。

oMsg = oApp.CreateItem(Outlook.OlItemType.olMailItem)     <---- Err
  ↓
oMsg = CType(oApp.CreateItem(Outlook.OlItemType.olMailItem), Outlook._MailItem)

お忙しい中、本当にありがとうございました。
.netは初めてでさらにメール制御も初めてなのでとても困っていたのですが、とても助かりました。
実はまだいろいろわからないことはあるのですが、
少しずつ調べてがんばっていこうと思います。

[ツリー表示へ]