三流君 ken3のmemo置き場

メモ置き場、保管庫として利用。まとまっていませんがヨロシク

挨拶・自己紹介:
失敗続きのAB型の変わり者 :三流プログラマー Ken3です
フリーのエンジニア・個人事業主です・・と書くと聞こえはイイが(それとなくカッコよく聞こえるが)、 現在は小さな案件の受注請負 と 短期派遣 で 日々つつましく?ほそぼそと暮らしてます。
(※詳細は[三流君 三流プログラマーとは?]を見てください)


広告:


[記事一覧、バックナンバーを見る]

失敗サンプル Outlook VBA .msg ファイル を .OpenSharedItem で 取り込み

拡張子が .msg の Outlookアイテムファイル

.OpenSharedItem("ファイル名")で取り込みました。

読み込み後、フォルダーの指定でエラーが発生してしまう。。。
そんな失敗サンプルです。

※苦肉の策・強引に On Error Resume Next ですすめてますが・・・

テスト結果

下記、テスト結果の動画です Outlook VBA OpenSharedItemで取り込みテスト

使用したコード

Outlook2007起動後、VBAで下記のコードでテストしました。

'.msgを読み込むテスト Outlook2007でテスト
Sub read_msg()
    
    Dim oNamespace As NameSpace
    Dim oItem As Object   'アイテム .msgから読み込みセット
    Dim oFolder As Folder 'フォルダー
    
    ' NameSpace オブジェクトへの参照を取得します。
    Set oNamespace = Application.GetNamespace("MAPI")
    
    ' 既定のフォルダ 参照を取得し、フォルダを表示します。
    Set oFolder = oNamespace.GetDefaultFolder(6) 'olFolderInbox=6
    oFolder.Display
    
    ' .msg ファイルを開きます。.OpenSharedItemで取り込み
    Set oItem = oNamespace.OpenSharedItem("F:\TEMP\AAAAA.msg")
    'テストで↑USBメモリなどから固定の名前を読み込む
   
    'oItem.Display  '読み込んだアイテムを表示(いらない)
    On Error Resume Next 'エラーを無視して次の行へ
    '下記のMOVEで同じフォルダーだとエラーが発生?するので、苦肉の策
    oItem.Move oFolder   '読み込んだ アイテムを指定したフォルダーへ
    'On Error GoTo 0      'エラー無視を解除(エラーをここから下は表示)
    
    '使用したオブジェクトの解放 = Nothing
    Set oItem = Nothing
    Set oFolder = Nothing
    Set oNamespace = Nothing

End Sub

終わりの挨拶

まだまだ、探りかたとサンプルが甘いけど、

三流君VBAでOutlookを操作する

で、細々解説しているので、良かったらのぞきにきてください。