【VBA】システムのTEMPフォルダに保存する
Excelを開いたときにWindowsの一時フォルダ(ローカルのTemp)に保存する必要が
あったため考えてみました。
システムの一時保存ファイルはC:\Users\~\Local配下のTempフォルダになります。
Sub templateCopy() Dim userID As String Dim filename As String Dim folderPath As String Dim FSO As Object Set FSO = CreateObject("Scripting.FileSystemObject") userID = Range("A1") filename = Range("A2") 'システムのTempフォルダを取得 folderPath = FSO.GetSpecialFolder(2) & "\" & userID 'ユーザーIDのフォルダが存在しなければフォルダを作る If Dir(folderPath, vbDirectory) = "" Then MkDir folderPath End If '別名を付けて保存 ThisWorkbook.SaveAs folderPath & "\" & filename END Sub
まずFileSystemObjectをsetします。
GetSpecialFolderでシステムのTempフォルダを取得できます。
下記のリンクを参考にGetSpecialFolder(2)を設定します。
Office TANAKA - Excel VBA FileSystemObject[GetSpecialFolderメソッド]
保存先のフォルダが存在しないとエラーになるため
フォルダが存在しない場合作成するようにしています。
Dirの第二引数で、フォルダを指定しています。
そしてbookがすでに存在していても上書き保存するため
Save asで上書き保存しています。
保存時はダイヤログも表示されません。
次は削除も考えませんと。