[[20190328152138]] 『Outlook VBAマクロでメールをローカルに保存』(Ninja) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『Outlook VBAマクロでメールをローカルに保存』(Ninja)

Run-time error '-2147287038 (80030002)':
The operation failed

"objItem.Subject"をFor内で増加するInt数値などにすると[*.msg]のファイルで正常に保存されるので、
件名をファイル名にしようとする部分で問題が発生している物と予想しています。
同じくFor内でセルに件名を入力させる".Cells(r, 2) = objItem.Subject"の部分は正常に動くので、
何故件名の指定が上手くいっていないのかが分からず詰まっています。

Sub Macro01()

    Const EXCEL_FILE = "\\0.0.0.1\share\excel\file.xlsx"
    Const MSG_FILE_BASE = "\\0.0.0.1\share\mail\"
    Dim fldCurrent As Folder
    Dim objItem As MailItem
    Dim objBook 'As Excel.Workbook
    Dim objSheet 'As Excel.Worksheet
    Dim r As Integer
    'アクティブフォルダー取得
    Set fldCurrent = ActiveExplorer.CurrentFolder
    'Excelファイルを開く
    Set objBook = GetObject(EXCEL_FILE)
    objBook.Windows(1).Activate
    Set objSheet = objBook.Sheets(1)
    '空白セルまで移動
    r = 2
    While objSheet.Cells(r, 1) <> ""
        r = r + 1
    Wend
    '各メールから3項目を抜き出し
    For Each objItem In fldCurrent.Items
        With objSheet
            .Cells(r, 1) = objItem.ReceivedTime
            .Cells(r, 2) = objItem.Subject
            .Cells(r, 3) = objItem.Body
        End With
    'タイトルをファイル名にして保存
        objItem.SaveAs MSG_FILE_BASE & objItem.Subject & ".msg", olMSGUnicode
        r = r + 1
    Next
    'Excelファイルを閉じる
    objBook.Close True
End Sub

< 使用 Excel:Office365、使用 OS:Windows7 >


 Windowsでは、ファイル名に使えない文字というのがあってですね
 Subjectにそのような使えない文字が入ってないか確認してください。
 詳しくは検索してください。 
(でれすけ) 2019/03/28(木) 16:46

でれすけさん
素晴らしいヒントをありがとうございます。
下記の通り、一度件名をStringにして使用不可能な文字列をReplaceで削除する事で期待通りの動作をするようになりました。

 Sub Macro01()
     <snip>
     Dim objSubject As String
     <snip>
         objSubject = objItem.Subject
         objSubject = Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(objSubject, "\", "'"), ":", "'"), "*", "'"), "|", "'"), "?", "'"), "<", "'"), ">", "'"), "/", "'"), """", "'")
         objItem.SaveAs MSG_FILE_BASE & objSubject & ".msg", olMSGUnicode
     <snip>
 End Sub

(Ninja) 2019/03/28(木) 17:21


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.