私はこのコードをWin10とOffice 2016を持つ他のPCに書いています。これはOutlookのルールで使用されています。 xml
ファイルを電子メールからフォルダに保存し、それを他のフォルダのxlsx
ファイルに変更します。 Outlook 2016では、正常に動作します。私はそれを他のノートにコピーしました。Outlook 2016から2013へのVBAコードの更新
このノートブックはWin10とOffice 2013があり、このコードはOutlook 2013でエラーメッセージなしで実行されますが、xml
ファイルは指定されたフォルダに保存されず、xlsx
にも変換されませんでした。
このコードで何が間違っている可能性がありますか?ツール・参考文献に
Option Explicit
Public Sub saveconvAttachtoDisk(itm As Outlook.MailItem)
Dim objAtt As Outlook.Attachment
Dim saveFolder As String
Dim dateFormat As String
Dim convFormat As String
Dim objFSO As Object
Dim objFolder As Object
Dim objFile As Object
saveFolder = "C:\Users\tulaj\Documents\xml\"
convFolder = "C:\Users\tulaj\Documents\xls\"
dateFormat = Format(itm.ReceivedTime, "yyyy-mm-dd HH-mm-ss")
For Each objAtt In itm.Attachments
objAtt.SaveAsFile saveFolder & dateFormat & objAtt.FileName
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder(saveFolder)
If UCase(Right(objAtt.FileName, Len(XML))) = UCase(XML) Then
NewFileName = convFolder & dateFormat & objAtt.FileName & "_conv.xlsx"
Set ConvertThis = Workbooks.Open(saveFolder & dateFormat & objAtt.FileName)
ConvertThis.SaveAs FileName:=NewFileName, FileFormat:= _
xlOpenXMLWorkbook
ConvertThis.Close
End If
Next
Set objAtt = Nothing
End Sub
falowingsを選択されています
- のVisual Basic用のaplications
- のMicrosoft Outlook 15.0オブジェクトライブラリ
- OLEオートメーション
- のMicrosoft Office 15.0 Object Libraryの
- Microsoft Excel 15.0オブジェクトライブラリ
- Microsoftスクリプトの実行時
を、それをテストして電子メールを選択し、次のコードを実行するにはどこに変数は 'XML'定義されている? (私はそれが**どこか**で定義されていなければならないと仮定します。あるいは、Office 2016で実行されませんでした) – YowE3K
コードが開始されているかどうかチェックしましたか?最初の行にブレークポイントを置き、手動で呼び出します。おそらく、ハードコーディングされたパスの代わりに 'Environ(" USERPROFILE ")'を使うべきでしょう。 – PatricK
@PatricK私はそれにブレークポイントを置くことはできません。どうしてか分かりません。 F8キーのステップバイステップ機能でさえ機能しません。 – vega69