[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『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
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.