前提・実現したいこと
msgファイルの添付ファイルを、msgファイルと同じフォルダに保存する
Outlook VBA を作成しています。
記載コードのようにフォルダを固定すれば動作しますが、
様々なフォルダにmsgファイルが存在するため、実行時にmsgファイルの
フォルダパスを取得し、変数に設定して動作させたいと思っています。
しかし、色々調べましたが、その取得方法がわかりません。
Outlook VBA の初心者ですが、教えていただけますでしょうか?
発生している問題・エラーメッセージ
エラーメッセージ
該当のソースコード
Outlook
1ソースコード 2Sub FileSave() 3 4Dim o_Ins As Inspector 5Dim o_Item As Object 6Dim o_Path As String 7Dim a_File As String 8Dim o_Attachment As Object 9 10Set o_Ins = Application.ActiveInspector 11Set o_Item = o_Ins.CurrentItem 12 13o_Path = "C:\AAA\BBB\" 14 15With o_Item 16 For Each o_Attachment In .Attachments 17 a_File = o_Path & o_Attachment 18 o_Attachment.SaveAsFile a_File 19 Next o_Attachment 20End With 21 22End Sub 23 24### 試したこと 25 26ここに問題に対して試したことを記載してください。 27 28### 補足情報(FW/ツールのバージョンなど) 29 30ここにより詳細な情報を記載してください。
様々なフォルダ
とは受信フォルダーの下にサブフォルダーがある
でしょうか?
拡張子がmsgのファイルを開いて添付ファイルを保存しようとしているのでしょうか。である場合、msgファイルを開く処理があるはずですので、そのコードを提示してください。
作成しなくてもoutlook 添付ファイル保存マクロとかで
検索すれば、完成したマクロを取得することができますよ。
皆さんありがとうございます。
説明不足ですいません。
VBAでmsgファイルを開く処理はしていません。
msgファイルを自分で開いた後に、添付ファイルをmsgファイルと同じフォルダに保存する
だけの簡単なコードを作成してみようとしています。(初心者なので、低レベルな作成ですが・・・)
記入したコードのように、添付ファイルを保存するフォルダを固定(o_Path = "C:\AAA\BBB\")
すれば動作したのですが、このフォルダを固定せずに、msgファイルが保存されている
フォルダにしたいだけです。
msgファイルが"C:\AAA\BBB"に保存されている時もあれば、"C:\CCC\DDD"に保存されている
時もあるので、自分で開いたmsgファイルの保存されているフォルダパスを取得して、変数で
コードを作成できないかと思った次第です。
msgファイルはOutlook内にあるのではなく、他の場所(デスクトップ等)に保存してあるという前提の話でしょうか?
msgファイルはデスクトップ等の様々な場所に保存してある状態が前提です。
件名や内容によって様々なフォルダに保存しています。Outlook内にはありません。