お世話になります。以下、調べてみてもわからなかったため、質問させて頂きます。
Ver.1 : FileSystemObjectを使ってDir関数を使わずに書いてみたところ、エラーはなくなりました。
一方、既存ファイルがあるか確認するIf fso.FileExists()では、ファイルが存在していても
ファイルを認識せず、毎回新規のファイルを作成し上書きするようになってしまいました。
正直お手上げです。。。
【背景】
毎月、PPTで月次のレポートを自動作成するマクロを動かしています。
すでにPPTが作成されていたら停止、未作成ならテンプレートを開いて、そのまま表の貼付け等に進むというものです。今回は問題が生じている部分だけを抜粋して記載しております。
先月、社内のサーバーがSharepointに移行されたことに伴い、マクロの保存先、ファイルの作成先・
既存ファイルの有無の確認先などすべてSharepointのフォルダ内で行うことになりました。
マクロとファイルの保存先は同じSharepoint内ですが、フォルダの階層は異なります。
【不具合が起きているコード】
Dim ppApp As New PowerPoint.Application Dim ppPt As Presentation Dim folder_pass, file_name Dim fso As New FileSystemObject folder_pass = "\\会社名.sharepoint.com\DavWWWRoot\sites\ABC\月次レポート\" file_name = "会社名 " & Report_month(ThisWorkbook.Sheets("Master").Range("C2")) & " Report " & Year(ThisWorkbook.Sheets("Master").Range("C2")) & ".pptx" Set fso = New FileSystemObject If fso.FileExists(file_name) = True Then MsgBox ("The file already exist. Program suspended.") End Else Set ppPt = ppApp.Presentations.Open(folder_pass & "会社名 Monthly Report_Blank.pptx") End If
If Dir(folder_pass) <> "" Then のところで実行時エラー 52:ファイル名または番号が不正です。
というエラーが出ます。調べたところによると、Windows10のバージョンによってはWeb上のパスに対してDir関数が使えないケースがあるという記述も見つけました。その方はOne Driveを使った修正方法をご提案されていました。
【解決したいこと】
Sharepointに置いたままで、これまでと同じように使うにはどこをどのように修正すれば良いか
ご教授頂けないでしょうか?宜しくお願い致します。
あなたの回答
tips
プレビュー